Rumah >pangkalan data >tutorial mysql >Bilakah LEFT JOIN dan KANAN JOIN Benar-benar Boleh Ditukar?

Bilakah LEFT JOIN dan KANAN JOIN Benar-benar Boleh Ditukar?

Susan Sarandon
Susan Sarandonasal
2025-01-14 15:51:44225semak imbas

When Are LEFT JOIN and RIGHT JOIN Truly Interchangeable?

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!

Kenyataan:
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