SELECT m.`id`, m.`message`, mr.`message_id` status
FROM `messages` m
LEFT JOIN (
select `message_id`
from `messages_read`
where `user_id` = 111
) mr
ON mr.`message_id` = m.`id`
WHERE m.`chat_id` = 12
Ну так мне нужно показать сообщения. А если нет данных прочитано оно или нет, то это же не значит что и само сообщение не нужно показыватьНадеюсь вы понимаете что в таком случае это условие там вообще ниочем? То есть что с ним, что без него - результат будет один и тот же.
Ну и ON это все то, что идет после ON, включая ON .... AND ....Угу, и order by, limit - все это on... Нет, он это он, вэа это отдельный оператор.
А значит если записи о прочтении не существует, то и само сообщение мы не получим.Ну а зачем тогда вообще его джойнить если в возвращаемые поля у вас все равно ничего из этой таблицы не попадает?
в документации MySql сказано, что нужно избегать условий в конструкции JOIN.
Никогда не следует указывать в части ON какие бы то ни было условия,
SELECT m.`id`, m.`message`
FROM `messages` m
LEFT JOIN `messages_read` mr
ON mr.`message_id` = m.`id`
WHERE m.`chat_id` = 12
AND mr.`user_id` = 111
А если это spa и основной бандл прописан через тэг script в index.html?
И что именно sessionhandler туда записывает?время, он записывает время, так как это не стандартный механизм сессий который делает с файлом сессии ровно то же самое - читает, проверяет что не старая, обновляет файл(меняет время доступа), считывает с него свежие данные.