Rumah >pangkalan data >tutorial mysql >Bilakah LEFT JOIN dan KANAN JOIN Benar-benar Boleh Ditukar?
Memahami Perbezaan Halus Antara KIRI JOIN dan KANAN JOIN
Walaupun LEFT JOIN
dan RIGHT JOIN
mungkin kelihatan boleh ditukar ganti apabila menggunakan syarat cantum yang sama, gelagat mereka berbeza dengan ketara bergantung pada susunan jadual dalam pertanyaan. Mari kita terokai ini dengan contoh.
Pertimbangkan dua jadual:
<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10)); CREATE TABLE Table2 (id INT, Name VARCHAR(10));</code>
Diisi dengan data berikut:
Table1 | Table2 | |
---|---|---|
Id | Name | Id |
1 | A | 1 |
2 | B | 2 |
3 |
Apabila menyertai menggunakan Table1.id = Table2.id
, keputusan LEFT JOIN
dan RIGHT JOIN
sememangnya sama:
<code class="language-sql">SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.id; SELECT * FROM Table2 RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>
Ini kerana keadaan cantuman adalah simetri. Walau bagaimanapun, ilusi kebolehtukaran rosak apabila susunan jadual diterbalikkan.
Kesan Susunan Meja
Perhatikan pertanyaan berikut:
<code class="language-sql">SELECT * FROM Table2 LEFT JOIN Table1 ON Table1.id = Table2.id;</code>
Ini mengembalikan semua baris daripada Table2
, tanpa mengira padanan dalam Table1
. Set keputusan ialah:
Table2 | Table1 | |
---|---|---|
Id | Name | Id |
1 | A | 1 |
2 | B | 2 |
3 | C |
Sebaliknya, RIGHT JOIN
dengan susunan jadual terbalik:
<code class="language-sql">SELECT * FROM Table2 RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>
Ini hanya termasuk baris daripada Table2
yang mempunyai baris yang sepadan dalam Table1
. Baris dengan id = 3
dalam Table2
akan dikecualikan.
Oleh itu, walaupun keadaan cantuman mungkin kelihatan simetri, pilihan antara LEFT JOIN
dan RIGHT JOIN
dan susunan jadual, secara asasnya menentukan baris jadual mana yang dijamin untuk disertakan dalam set hasil akhir, walaupun terdapat tiada padanan di meja lain. Sentiasa pertimbangkan dengan teliti susunan jadual untuk memastikan anda mendapat hasil yang diharapkan.
Atas ialah kandungan terperinci Bilakah LEFT JOIN dan KANAN JOIN Benar-benar Boleh Ditukar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!