Pelajaran 29 / 37 · Menyusun query

EXISTS mengecek setiap baris satu per satu

Subquery ini merujuk ke baris di query luar (o.customer_id = c.id), jadi tidak bisa dijalankan sendiri: subquery ini dihitung ulang untuk setiap pelanggan. dequery menjelaskan hal ini, alih-alih berpura-pura subquery-nya bisa ditampilkan sebagai langkah tersendiri. IN dengan subquery, atau join, sering bisa menghasilkan hal yang sama.

Query-nya

SELECT c.name
FROM customers c
WHERE EXISTS (
  SELECT 1
  FROM orders o
  WHERE o.customer_id = c.id AND o.status = 'refunded'
)

Coba NOT EXISTS: 8 pelanggan lainnya lolos, yaitu yang tidak punya pesanan refunded.

Berikutnya: NOT IN dengan NULL di daftarnya tidak meloloskan baris apa pun · Semua pelajaran