Mysql
 sql >> Baza danych >  >> RDS >> Mysql

zapytanie tabeli wiadomości sql

Spowoduje to wybranie wszystkich rozmów, które mają użytkownika 1, użytkownika 2 lub obu, ale nikogo innego:

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

Jeśli chcesz również wszystkie wątki, które mają dokładnie użytkownika 1 i 2, a nie nikogo innego, musisz również dodać warunek i:

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

Jeśli identyfikator użytkownika można zduplikować, lepiej jest również użyć odrębnego:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DateTimeField otrzymał naiwną datę i godzinę

  2. PHP/MySQL Wstaw wartości puste

  3. W jaki sposób tabele innodb są blokowane podczas przetwarzania wyzwalacza ON INSERT?

  4. Zarządzanie bazą danych MySQL w cPanel za pomocą PHPMyAdmin

  5. Wstaw wartość dynamicznego pola wyboru w bazie danych Mysql i pokaż wiadomość o przesłaniu danych