sql >> データベース >  >> RDS >> Mysql

SQL:複数のレコードからの条件を満たすレコードを取得します

    質問の場合: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
    

    ProductIDに一意性が適用されなかった場合 すべてのCustomerIDDISTINCT キーワードが必要です、

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

    2番目の質問については、 ".. AとCとDですが、BとEと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. MySQLでの複数の更新

    2. カスケード削除制約を追加するにはどうすればよいですか?

    3. 行1の列'xxxx'のデータが切り捨てられました

    4. 挿入無視をエミュレートし、postgresqlを使用して重複キー更新(SQLマージ)を行う方法は?