Sebuah JOIN menggabungkan baris dari dua tabel dengan mencocokkan sebuah kondisi, biasanya sebuah foreign key. Tipe join menentukan apa yang terjadi pada baris yang tidak memiliki pasangan di sisi lain.
Sebuah JOIN menggabungkan baris dari dua tabel dengan mencocokkan sebuah kondisi, biasanya sebuah foreign key. Tipe join menentukan apa yang terjadi pada baris yang tidak memiliki pasangan di sisi lain.
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 (misalnya WHERE o.total > 100) secara diam-diam mengubah LEFT JOIN kembali menjadi INNER JOIN, karena NULL > 100 bernilai false. Letakkan kondisi seperti itu di klausa ON jika Anda ingin mempertahankan baris yang tidak cocok.Sebagian besar query nyata mencakup beberapa tabel, dan tipe join yang salah secara diam-diam menghapus atau menggandakan baris — sebuah bug yang mengembalikan hasil yang masuk akal. Mengetahui bahwa LEFT JOIN + IS NULL menemukan baris yang "hilang", dan bahwa sebuah WHERE pada sisi null membatalkan LEFT, mencegah seluruh kelas kesalahan pelaporan.
Perpustakaan pertanyaan wawancara IT dengan jawaban mendetail — dari Junior hingga Senior.
Donasi