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

SQL:Nhận các bản ghi đáp ứng các điều kiện đến từ nhiều bản ghi

Đối với câu hỏi:get a list of customers who bought both A and B

SELECT  CustomerID
FROM    CustomerList
WHERE   ProductID IN ('A', 'B')
GROUP   BY CustomerID
HAVING  COUNT(*) = 2

nếu tính duy nhất không được thực thi trên ProductID cho mọi CustomerID , DISTINCT từ khóa là bắt buộc,

SELECT  CustomerID
FROM    CustomerList
WHERE   ProductID IN ('A', 'B')
GROUP   BY CustomerID
HAVING  COUNT(DISTINCT ProductID ) = 2

Đối với câu hỏi thứ hai, "..A và C và D nhưng không phải B và E và F"

SELECT  CustomerID
FROM    CustomerList
WHERE   ProductID IN ('A', 'C', 'D')
GROUP   BY CustomerID
HAVING  COUNT(*) = 3 AND
        CustomerID NOT IN
        (
            SELECT  CustomerID
            FROM    CustomerList
            WHERE   ProductID IN ('B','E','F')
        )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm mức lương cao thứ 2 theo cách tốt nhất có thể

  2. Đếm () và vấn đề tham gia trái

  3. Cách chọn từng bản ghi một mà không lặp lại

  4. Vấn đề mã hóa UTF8 - Với các ví dụ điển hình

  5. Cách giám sát tổng hợp kết nối cho .NET MySQL Data Connector trong IIS