@entermix

Как правильно составить SQL запрос?

Есть таблицы:

dialogs:
id, created

dialog_users:
user_id
dialog_id


В одном диалоге может участвовать несколько пользователей.

Есть идентификатор отправителя и получателя, нужно проверить существует ли диалог, где участвуют только отправитель и получатель, как правильно составить SQL зпрос? Правильно ли составлена структура таблиц?
  • Вопрос задан
  • 262 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `d1`.`dialog_id`
    FROM `dialog_users` AS `d1`
    JOIN `dialog_users` AS `d2` ON `d2`.`dialog_id` =`d1`.`dialog_id`
    JOIN (SELECT `dialog_id`, COUNT(*) AS `count`
              FROM `dialog_users` 
              GROUP BY `dialog_id`) 
        AS `c` ON `c`.`dialog_id` = `d1`.`dialog_id`
    WHERE `d1`.`user_id` = :user1 
        AND `d2`.`user_id` = :user2 
        AND `c`.`count` = 2
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы