sql >> Databáze >  >> RDS >> Mysql

SQL:Získejte záznamy, které splňují podmínky pocházející z více záznamů

K otázce: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

pokud nebyla u ProductID vynucena jedinečnost pro každé CustomerID , DISTINCT klíčové slovo je povinné,

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

U druhé otázky "..A a C a D, ale ne B a E a 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. Dva příkazy mysql_fetch_array v

  2. Přesunutí existující tabulky z primární skupiny souborů do jiné skupiny souborů

  3. dotaz mysql:SELECT DISTINCT column1, GROUP BY column2

  4. Důrazně zadejte tyto parametry s hodnotou tabulky