Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle mendapatkan baris yang sama persis dengan daftar nilai

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).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menulis prosedur tersimpan menggunakan tabel dari skema lain?

  2. Pernyataan pemilihan kueri PHP Oracle di dalam loop lambat

  3. Bagaimana cara menghapus nilai kolom berulang dari laporan?

  4. Menghubungkan ke Oracle 12c Database dari Pentaho Data Integration (Kettle) Community Edition

  5. Apa yang sebenarnya digunakan LISTAGG dengan ORDER BY NULL sebagai kriteria pesanan?