Jadual Kandungan
Perbezaan
gabungan dalam
sambung luar
Rumah pangkalan data tutorial mysql Apakah perbezaan antara mysql inner join dan outer join?

Apakah perbezaan antara mysql inner join dan outer join?

Jan 06, 2022 pm 02:50 PM
mysql gabungan dalaman gabungan luar

Perbezaan antara sambungan dalam mysql dan sambungan luar: sambungan dalam akan mengeluarkan data padanan dalam jadual sambungan, dan data yang tidak dapat dipadankan tidak akan dikekalkan manakala sambungan luar akan mengeluarkan padanan data dalam jadual sambungan, dan data yang sepadan juga tidak akan dikekalkan, nilainya adalah NULL.

Apakah perbezaan antara mysql inner join dan outer join?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Perbezaan

  • Sambungan dalam: Keluarkan data yang sepadan dalam jadual sambungan dan jangan simpan data yang tidak sepadan
  • Sambungan luar : Keluarkan data yang sepadan dalam jadual sambungan, dan data yang tidak sepadan akan dikekalkan nilainya ialah NULL

Contoh jadual

jadual pengguna

mysql> select * from users;
+----+-------+
| id | name  |
+----+-------+
|  1 | john  |
|  2 | May   |
|  3 | Lucy  |
|  4 | Jack  |
|  5 | James |
+----+-------+
5 rows in set (0.00 sec)
Salin selepas log masuk

jadual topik

mysql> select * from topics;
+----+---------------------------------------+---------+
| id | title                                 | user_id |
+----+---------------------------------------+---------+
|  1 |  Hello world                          |       1 |
|  2 | PHP is the best language in the world |       2 |
|  3 | Laravel artist                        |       6 |
+----+---------------------------------------+---------+
3 rows in set (0.00 sec)
Salin selepas log masuk

gabungan dalam

  • Contoh
mysql> select * from users as u inner join topics as t on u.id=t.user_id;
+----+------+----+---------------------------------------+---------+
| id | name | id | title                                 | user_id |
+----+------+----+---------------------------------------+---------+
|  1 | john |  1 |  Hello world                          |       1 |
|  2 | May  |  2 | PHP is the best language in the world |       2 |
+----+------+----+---------------------------------------+---------+
2 rows in set (0.00 sec)
Salin selepas log masuk

dalaman boleh ditinggalkan, kerana Untuk menyamakan jadual, anda juga boleh tinggalkan

mysql> select * from users u join topics t on u.id=t.user_id;
+----+------+----+---------------------------------------+---------+
| id | name | id | title                                 | user_id |
+----+------+----+---------------------------------------+---------+
|  1 | john |  1 |  Hello world                          |       1 |
|  2 | May  |  2 | PHP is the best language in the world |       2 |
+----+------+----+---------------------------------------+---------+
2 rows in set (0.00 sec)
Salin selepas log masuk

Kedua-dua ayat di atas adalah bersamaan dengan

mysql> select * from users,topics where users.id=topics.user_id;
+----+------+----+---------------------------------------+---------+
| id | name | id | title                                 | user_id |
+----+------+----+---------------------------------------+---------+
|  1 | john |  1 |  Hello world                          |       1 |
|  2 | May  |  2 | PHP is the best language in the world |       2 |
+----+------+----+---------------------------------------+---------+
2 rows in set (0.00 sec)
Salin selepas log masuk

sambung luar

  • sambung luar kiri (sambung luar kiri): Gunakan jadual pada kiri sebagai jadual utama
  • Cantuman luar kanan (cantuman luar kanan): Gunakan jadual di sebelah kanan sebagai jadual utama

Gunakan jadual tertentu sebagai jadual Utama, lakukan berkaitan pertanyaan. Tidak kira sama ada ia boleh dikaitkan atau tidak, data jadual utama akan disimpan Jika ia tidak boleh dikaitkan, ia akan dipaparkan sebagai NULL

Penjelasan yang popular ialah: keluarkan dahulu semua data jadual utama, dan kemudian pergi ke Cari yang berkaitan sama ada terdapat mana-mana data yang memenuhi syarat perkaitan dalam jadual itu. Jika ada, ia akan dipaparkan seperti biasa, ia akan dipaparkan sebagai NULL

Contoh

mysql> select * from users as u left join topics as t on u.id=t.user_id;
+----+-------+------+---------------------------------------+---------+
| id | name  | id   | title                                 | user_id |
+----+-------+------+---------------------------------------+---------+
|  1 | john  |    1 |  Hello world                          |       1 |
|  2 | May   |    2 | PHP is the best language in the world |       2 |
|  3 | Lucy  | NULL | NULL                                  |    NULL |
|  4 | Jack  | NULL | NULL                                  |    NULL |
|  5 | James | NULL | NULL                                  |    NULL |
+----+-------+------+---------------------------------------+---------+
5 rows in set (0.00 sec)
Salin selepas log masuk

adalah bersamaan dengan yang berikut, cuma medan Kedudukannya berbeza

mysql> select * from topics as t right join users as u on u.id=t.user_id;
+------+---------------------------------------+---------+----+-------+
| id   | title                                 | user_id | id | name  |
+------+---------------------------------------+---------+----+-------+
|    1 |  Hello world                          |       1 |  1 | john  |
|    2 | PHP is the best language in the world |       2 |  2 | May   |
| NULL | NULL                                  |    NULL |  3 | Lucy  |
| NULL | NULL                                  |    NULL |  4 | Jack  |
| NULL | NULL                                  |    NULL |  5 | James |
+------+---------------------------------------+---------+----+-------+
5 rows in set (0.00 sec)
Salin selepas log masuk

Cambung luar kiri dan cantuman luar kanan adalah relatif digunakan sebagai jadual utama untuk persatuan

[Cadangan berkaitan:tutorial video mysql

Atas ialah kandungan terperinci Apakah perbezaan antara mysql inner join dan outer join?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kemahiran pemprosesan struktur data besar PHP Kemahiran pemprosesan struktur data besar PHP May 08, 2024 am 10:24 AM

Kemahiran pemprosesan struktur data besar PHP

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Jun 03, 2024 pm 08:11 PM

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP?

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Jun 03, 2024 pm 12:19 PM

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP?

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Jun 02, 2024 pm 02:26 PM

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP?

Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data? Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data? May 05, 2024 am 09:06 AM

Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data?

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Dec 09, 2024 am 11:42 AM

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Jun 02, 2024 pm 02:13 PM

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP?

Strategi pengoptimuman prestasi untuk halaman tatasusunan PHP Strategi pengoptimuman prestasi untuk halaman tatasusunan PHP May 02, 2024 am 09:27 AM

Strategi pengoptimuman prestasi untuk halaman tatasusunan PHP

See all articles