Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle lấy các hàng khớp chính xác với danh sách các giá trị

Hãy thử điều này:

SELECT OrderID 
FROM OrderDetailTable JOIN OrderedTable USING (ItemID)
GROUP BY OrderID 
HAVING COUNT(DISTINCT ItemID) = (SELECT COUNT(DISTINCT ItemID) FROM OrderedTable)

Tóm lại, ý tưởng như sau:

  • Đếm xem có bao nhiêu hàng OrderDetailTable khớp với OrderTable theo ItemID,
  • và sau đó so sánh với tổng số ItemID từ OrderedTable.

Nếu hai số này bằng nhau, OrderID đã cho "chứa" tất cả các ItemID. Nếu cái này nhỏ hơn cái kia, có ít nhất một ItemID không có trong OrderID đã cho.

Tùy thuộc vào khóa chính của bạn, DISTINCT có thể không cần thiết (mặc dù nó không đau).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lưu trữ các byte trong Oracle Varchar2 và có ASCII được coi là văn bản

  2. Tại sao tôi không thể truyền oracle BLOB từ Java Blob gốc

  3. Cột trả về Oracle SQL được tính toán từ các cột hiện có

  4. Lệnh odbc thích hợp để gọi thủ tục được lưu trữ trong Oracle với các tham số từ .Net là gì?

  5. Làm thế nào để chuyển đổi dấu thời gian với mili giây sang ngày tháng trong Oracle