Есть запрос (выполняется в процедуре, предаются параметры: send_to, time_from, out_limit):
SELECT
msgs.text,
msgs.time,
users.nickname,
roles.nickname_color,
roles.message_color
FROM msgs
JOIN users
ON users.account_id=msgs.user_id
JOIN roles
ON users.role_id=roles.role_id
WHERE msgs.send_to=send_to AND msgs.time>time_from
LIMIT out_limit
Некоторые строки из таблицы msgs игнорирует, по пробовал так:
SELECT
msgs.text,
msgs.time,
users.nickname,
roles.nickname_color,
roles.message_color
FROM msgs
JOIN users
ON users.account_id=msgs.user_id
FULL OUTER JOIN roles
ON users.role_id=roles.role_id
WHERE msgs.send_to=send_to AND msgs.time>time_from
LIMIT out_limit
Ошибка синтаксиса на "FULL OUTER JOIN users...".
Мне нужно чтобы выводились ВСЕ строки из msgs, которые удовлетворяют условию:
msgs.send_to=send_to AND msgs.time>time_from
И обязательным добавлением данных из таблицы users (если нет совпадений users.account_id с msgs.user_id - игнорировать) и не обязательным из roles (если нет совпадения users.role_id с roles.role_id, то оставить NULL в выбранных полях из roles).
Что я делаю не так?