У меня есть две таблицы:MYSQL: Найти все сообщения от определенных пользователей
таблицы сообщение (держит создатель сообщения и сообщения)
идентификатор - creatorId - глутамат
, таблицу message_viewers (говорит, кто может прочитать сообщение MsgID)
MsgID - USERID
Если я создаю сообщение, как пользователь 1 и отправить его пользователю 2 и 3 пользователя, таблицы будет выглядеть следующим образом:
tbl_message:
1 - 1 - 'message'
tbl_message_viewers:
1 - 2
1 - 3
То, что я хочу сделать, это для получения сообщений, которые между x1 пользователями ... хп (любое количество пользователей) и только сообщения между ними.
(Пример, если пользователи 1, 2 и 3, мне нужны сообщения, где создатель 1, 2 или 3, а пользователи 2,3 для создателя = 1, 1 и 3 для создателя = 2 и 1, 2 для создателя = 3)
Я не заинтересован сообщениями между 1 и 2, или 2 и 3, или 1 и 3, но только сообщениями между 3 людьми.
Я пробовал разные подходы, такие как объединение двух таблиц в идентификатор сообщения, выбор сообщений, где creatorId IN (X, Y), а затем взятие только строк, где userId IN (X, Y) также. Может быть, что-то о группировке и подсчете строк, но я не мог понять, как это сделать.
EDIT: SQL Скрипки здесь
http://sqlfiddle.com/#!2/963c0/1
это сообщение требует, по крайней мере одну строку в tbl_message_viewers? – BevynQ
Да. И создатель сообщения не отправляет сообщение самому себе. – user3010549
Нет, это исключительно между тремя людьми. – user3010549