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

列に別の列のすべての値が含まれているかどうかを確認します-Mysql

    私が正しく理解している場合は、T2で見つかったすべての関連するstuffIDを持つT1からすべてのpersonIDを取得する必要があります。

    これは次のように分割できます。まず、ネストされたクエリと一致するすべてのT1エントリを見つけます

    SELECT personID 
    FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)
    

    次に、このセットのどのエントリに必要なすべてのstuffIDが含まれているかを確認する必要があります

    GROUP BY personID
    HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)
    

    すべてをまとめます:

    SELECT personID 
    FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)
    GROUP BY personID
    HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)
    

    HTH。



    1. JOIN(SELECT ...)ue ON 1 =1?

    2. TimescaleDBのストリーミングレプリケーションの概要

    3. PHPおよびSQLハッシュヘルプ:何が間違っているのですか?

    4. Html/PhpフォームがSQLデータベースに追加されない