Bir JOIN, iki tablodan satırları bir koşulu, genellikle bir foreign key'i eşleştirerek birleştirir. Join tipi, diğer tarafta eşleşmesi olmayan satırlara ne olacağına karar verir.
Bir JOIN, iki tablodan satırları bir koşulu, genellikle bir foreign key'i eşleştirerek birleştirir. Join tipi, diğer tarafta eşleşmesi olmayan satırlara ne olacağına karar verir.
NULL olarak döner.-- 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'de filtrelemek (örn. WHERE o.total > 100) bir LEFT JOIN'i sessizce yeniden INNER JOIN'e çevirir, çünkü NULL > 100 false'tur. Eşleşmeyen satırları tutmak istiyorsanız bu tür koşulları ON yan tümcesine koyun.Çoğu gerçek sorgu birden fazla tabloya yayılır ve yanlış join tipi sessizce satırları düşürür veya çoğaltır — makul görünen sonuçlar döndüren bir hata. LEFT JOIN + IS NULL'ın "eksik" satırları bulduğunu ve null tarafındaki bir WHERE'in LEFT'i iptal ettiğini bilmek, bütün bir raporlama hataları sınıfını önler.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap