@Alex47517

Как сформировать SQL запрос для поиска в двух таблицах с условиями?

Имеется 2 таблицы:
conversations: id, name, last_update
conversationmembers: id, chat_id (ссылка на conversations.id), user (id пользователя), rank, notifications
===
Мне необходимо реализовать проверку на существование приватного чата.
Чаты лс создаются с conversations.name = 'pm'
При создании нового чата происходит следущее:
- создается строка в таблице conversations
- создаются 2 строки собеседников в conversationmembers, chat_id которых ссылается на только что созданный conversations.id
В наличии есть данные только id профилей собеседников, которых необходимо проверить.

Пробовал такой запрос:
SELECT `id` FROM conversations, conversationmembers WHERE conversations.name = 'pm' AND conversations.id = conversationmembers.chat_id AND conversationmembers.user = $user['id']

Но он возвращает результат если существует хоть один чат у $user['id']. Возможно нужно просто добавить еще проверку $user1['id']...
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
iMedved2009
@iMedved2009
Не люблю людей
Выведет всех пользователей участвующих в приватных разговорах.
select * from conversationmembers where exists(select 1 from conversations where name = 'pm' and conversationmembers.chat_id = conversations.id);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы