sql >> Databasteknik >  >> RDS >> Mysql

SQL:Hämta poster som uppfyller villkor som kommer från flera poster

För fråga: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

om unikhet inte tillämpades på ProductID för varje CustomerID , DISTINCT nyckelord krävs,

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

För den andra frågan, "..A och C och D men inte B och E och 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. Postgres:Hur gör man Composite keys?

  2. MYSQL-fråga för att välja resultatet av ett villkor för en tabell och visa det i en annan tabell

  3. MySQL INTO OUTFILE åsidosätta befintlig fil?

  4. Hur man installerar MySQL 8.0 på CentOS 8 / RHEL 8