Rumah >pangkalan data >tutorial mysql >Bilakah Pertanyaan KIRI JOIN dan KANAN JOIN Boleh Ditukar Dalam SQL?

Bilakah Pertanyaan KIRI JOIN dan KANAN JOIN Boleh Ditukar Dalam SQL?

DDD
DDDasal
2025-01-14 16:02:421007semak imbas

When Are LEFT JOIN and RIGHT JOIN Queries Interchangeable in SQL?

SQL LEFT JOIN dan RIGHT JOIN: Bilakah ia setara?

LEFT JOIN dan RIGHT JOIN dalam SQL menggabungkan baris daripada dua jadual berdasarkan nilai yang sepadan. Walaupun fungsinya serupa, perbezaan utama wujud.

Mari kita gambarkan:

<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10));
CREATE TABLE Table2 (id INT, Name VARCHAR(10));

INSERT INTO Table1 (id, Name) VALUES
(1, 'A'),
(2, 'B');

INSERT INTO Table2 (id, Name) VALUES
(1, 'A'),
(2, 'B'),
(3, 'C');</code>

Pertanyaan ini:

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

menghasilkan hasil yang sama. Kedua-duanya memadankan baris daripada Table1 dengan baris yang sepadan dalam Table2 menggunakan medan id. LEFT JOIN termasuk semua baris daripada Table1, manakala RIGHT JOIN melakukan perkara yang sama untuk Table2.

Walau bagaimanapun, pertimbangkan ini:

<code class="language-sql">SELECT *
FROM Table2
LEFT JOIN Table1 ON Table1.id = Table2.id;</code>

atau yang setaraf dengannya:

<code class="language-sql">SELECT *
FROM Table1
RIGHT JOIN Table2 ON Table1.id = Table2.id;</code>

Keluaran berbeza. Ini mengembalikan semua baris daripada Table2 serta mana-mana baris yang sepadan daripada Table1. Ini ialah "gabungan luar", di mana baris daripada satu jadual disertakan walaupun tanpa padanan di bahagian lain. Perkara utama ialah sebutan kiri atau kanan menentukan baris jadual mana yang dijamin akan disertakan sepenuhnya dalam set hasil, tanpa mengira baris yang sepadan dalam jadual lain. Oleh itu, pertukaran jadual mudah dalam pertanyaan tidak selalu menghasilkan hasil yang sama. Kebolehtukaran bergantung sepenuhnya pada data dan hasil yang diingini.

Atas ialah kandungan terperinci Bilakah Pertanyaan KIRI JOIN dan KANAN JOIN Boleh Ditukar Dalam SQL?. 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