Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQL:Dapatkan catatan yang memenuhi kondisi yang berasal dari beberapa catatan

Untuk pertanyaan: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

jika keunikan tidak diterapkan pada ProductID untuk setiap CustomerID , DISTINCT kata kunci diperlukan,

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

Untuk pertanyaan kedua, "..A dan C dan D tetapi bukan B dan E dan 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. jenis bidang tidak terdefinisi sunspot solr

  2. Gulir Tak Terbatas Memuat Semua Item Sekaligus?

  3. SQLAlchemy - abaikan penyisipan massal:Entri duplikat

  4. JpaSpecificationExecutor GABUNG + ORDER BY dalam Spesifikasi

  5. Menghilangkan MySQL Split-Brain di Database Multi-Cloud