Mysql
 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

Ако потребителският идентификатор може да бъде дублиран, по-добре е също да използвате 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ВЪВЕТЕ множество записа, използвайки активен запис на ruby ​​on rails

  2. Изявлението USING if не работи както трябва

  3. MySQL LOAD_FILE връща NULL

  4. MySQL подреждане по дубликати отгоре първо

  5. ИЗБЕРЕТЕ * ОТ хора WHERE user_id='$user_id' ПОРЪЧАЙТЕ ПО време ГРУПА ПО фамилно име