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

SQLメッセージテーブルクエリ

    これにより、ユーザー1またはユーザー2、あるいはその両方がいるが、他の誰もいないすべての会話が選択されます。

    select conversationID
    from conversations
    group by conversationID
    having count(*) = count(case when userID in (1,2) then 1 end)
    

    ユーザー1と2が正確に含まれ、他のユーザーがいないすべての会話も必要な場合は、条件を追加する必要があります。

    select conversationID
    from conversations
    group by conversationID
    having count(*) = count(case when userID in (1,2) then 1 end)
           and count(*) = 2 -- number of elements in set
    

    userIDを複製できる場合は、distinctを使用することもお勧めします:

    select conversationID
    from conversations
    group by conversationID
    having
      count(distinct userID) = count(distinct case when userID in (1,2) then userID end)
      and count(distinct userID) = 2 -- number of elements in set
    


    1. Symfony2 Doctrine-PostgreSQLのILIKE句?

    2. SQLDeveloperでデータをインポートするときにタイムスタンプを読み取る

    3. MySQL:MACアドレスを保存する最良の方法は?

    4. PHP + MySQL CMSを自己更新する方法は?