Eşleşmeyen satırlar
- SQL kursu
- Orta seviye
- Ders 9/115
- 4 dk
Bir tabloda olup diğerinde olmayan satırları bulmayı öğrenirsin.
Eşleşmeyen satırlar
LEFT JOIN'da eşleşmeyen satırları WHERE sağ.id IS NULL ile yakalarsın. Buna anti-join denir.
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL;Bu sorgu hiç sipariş vermemiş müşterileri verir.
customers c kaynağından c.name seçilir. orders o tablosu o.customer_id = c.id koşuluyla sol tablonun tüm satırları korunarak birleştirilir. WHERE o.id IS NULL koşulunu sağlamayan satırlar elenir.
Eşleşmeyen satırlar — ayrıntı
Anti-join 'olmayan' kayıtları bulur. Eşleşmeyen NULL satırlar işaretlenir ve filtrelenir.
Örneğin LEFT JOIN'den sonra WHERE o.id IS NULL yazarak hiç sipariş vermemiş müşterileri bulursun.
Uygulama Eşleşmeyen satırlar
Sipariş vermemiş müşterileri LEFT JOIN ve IS NULL ile bul.
Başlangıç kodu
-- sipariş vermeyenler
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.idÖrnek çözüm
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL;Beklenen çıktı
name Fatma Ali
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Eşleşmeyen satırlar: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
anti-join |
olmayan |
IS NULL |
boş |
LEFT JOIN |
tüm sol |
WHERE |
filtre |
2 IS NULL ekle
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
____ o.id IS NULL;
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL;
Açıklama: LEFT JOIN eşleşmeyen satırlarda sağ tabloyu NULL getirir; WHERE o.id IS NULL hiç siparişi olmayanları bulur.
3 Anti-join nasıl yazılır?
- UNION
- CROSS JOIN
- INNER JOIN
- LEFT JOIN + IS NULL Doğru cevap
Açıklama: LEFT JOIN ile IS NULL birleşimi anti-join verir.