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