JOIN menggabungkan baris daripada dua jadual dengan memadankan satu syarat, biasanya foreign key. Jenis join menentukan apa yang berlaku kepada baris yang tiada padanan di sebelah yang satu lagi.
JOIN menggabungkan baris daripada dua jadual dengan memadankan satu syarat, biasanya foreign key. Jenis join menentukan apa yang berlaku kepada baris yang tiada padanan di sebelah yang satu lagi.
NULL.-- customers(id, name) orders(id, customer_id, total)
-- INNER: only customers who have at least one order
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
-- LEFT: every customer, even those with zero orders (total = NULL)
SELECT c.name, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
-- Classic use: find customers with NO orders
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL; -- the LEFT JOIN's NULL side reveals the gap
WHERE (cth. WHERE o.total > 100) secara senyap menukar LEFT JOIN semula menjadi INNER JOIN, kerana NULL > 100 adalah palsu. Letakkan syarat sebegini dalam klausa ON jika anda mahu mengekalkan baris yang tidak sepadan.Kebanyakan pertanyaan sebenar merentasi berbilang jadual, dan jenis join yang salah secara senyap menggugurkan atau menduplikasi baris — pepijat yang memulangkan keputusan yang nampak munasabah. Mengetahui bahawa LEFT JOIN + IS NULL mencari baris "yang hilang", dan bahawa WHERE di sebelah null membatalkan LEFT, menghalang satu kelas keseluruhan ralat pelaporan.
Pustaka soalan temu duga IT dengan jawapan terperinci — daripada Junior hingga Senior.
Derma