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

dotaz na tabulku zpráv sql

Tím se vyberou všechny konverzace, které mají uživatele 1 nebo uživatele 2 nebo oba, ale nikoho jiného:

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

Pokud chcete také všechny konverzace, které mají přesně uživatele 1 a 2, a nikoho jiného, ​​musíte také přidat podmínku a:

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

Pokud lze ID uživatele duplikovat, je také lepší použít odlišné:

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. Vlastní oblast správy Opencart -> dotazy zobrazující pouze první záznam tabulek

  2. Balíček SSIS poskytuje chybu po nasazení SQL Server 2012

  3. MySQL počítá po sobě jdoucí data pro aktuální sérii

  4. Vytvořte dotaz pro získání počtu nedokončených skupin hovorů podle 2 polí