Задать вопрос
@Alk90
php, mysql, jquery, css, html, api

Как выполнить LEFT JOIN с условием?

Всем привет. У меня есть две таблицы:
messages - хранит сообщения.
messages_read - хранит данные о том прочитано ли сообщение пользователем.
Когда я получаю список сообщений из БД и хочу определить было ли прочитано сообщение текущим пользователем, мне приходится выполнять LEFT JOIN и запрос получается таким.
SELECT m.`id`, m.`message`, mr.`readed` 
FROM `messages` m
LEFT JOIN `messages_read` mr ON mr.`message_id` = m.`id` AND mr.`user_id` = 111
WHERE m.`chat_id` = 12

Обратите пожалуйста внимание на AND mr.`user_id` = 111. Мне это условие просто необходимо, потому что нужно знать прочитал ли именно этот пользователь это сообщение.
Но в документации MySql сказано, что нужно избегать условий в конструкции JOIN.

Подскажите, как лучше поступить в этой ситуации?
  • Вопрос задан
  • 11820 просмотров
Подписаться 2 Простой 17 комментариев
Ответ пользователя egor_nullptr К ответам на вопрос (4)
egor_nullptr
@egor_nullptr
Если запрос отрабатывает за приемлемое для вас время, то ничего не меняйте.
Ответ написан
Комментировать