Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL:Uzyskaj rekordy, które spełniają warunki pochodzące z wielu rekordów

Na pytanie: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

jeśli unikatowość nie została wymuszona na ProductID dla każdego CustomerID , DISTINCT słowo kluczowe jest wymagane,

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

W przypadku drugiego pytania:"..A, C i D, ale nie B, E i 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. Błąd nieprawidłowej architektury Pythona MySQL

  2. Pobieranie liczby unikalnych kolumn w SQL

  3. Zapytanie MySQL Ciąg zawiera

  4. Zwróć wartość logiczną z pliku PHP do pliku AJAX - przycisk Śledź

  5. MySQL - Spraw, aby para wartości była unikalna