CodeBlanks Logo Icon CodeBlanks

Eşleşmeyen satırlar

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

query.sql
-- sipariş vermeyenler
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id

Örnek çözüm

query.sql
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

Soru
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
____ o.id IS NULL;
Cevap
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.

Orta seviye bölümündeki tüm dersler