Coba ini:
SELECT OrderID
FROM OrderDetailTable JOIN OrderedTable USING (ItemID)
GROUP BY OrderID
HAVING COUNT(DISTINCT ItemID) = (SELECT COUNT(DISTINCT ItemID) FROM OrderedTable)
Idenya, secara singkat, adalah sebagai berikut:
- Hitung berapa banyak baris OrderDetailTable yang cocok dengan OrderedTable menurut ItemID,
- lalu bandingkan dengan jumlah total ItemID dari OrderedTable.
Jika kedua angka ini sama, OrderID yang diberikan "berisi" semua ItemID. Jika yang satu lebih kecil dari yang lain, setidaknya ada satu ItemID yang tidak terdapat dalam OrderID yang diberikan.
Bergantung pada kunci utama Anda, DISTINCT
mungkin tidak diperlukan (meskipun tidak sakit).