Проблема в том, что из-за того, что вы связали таблицу users
в обоих соединениях, ссылка на users
в условиях JOIN
, списки GROUP BY
и SELECT
является неоднозначной или недопустимой.
Какое имя пользователя и аватар вы хотите от SELECT
, отправителя или получателя?Поскольку вы JOIN
дважды редактировали с разными псевдонимами, вам необходимо указать , какую копию используемой вами таблицы users
.
Это должен быть либо user_receiver.username
и user_receiver.avatar
ИЛИ user_sender.username
и user_sender.avatar
, или все они.Ссылка на users
недопустима в этой точке, потому что нет объединенной объединенной таблицы users
.
То же самое, псевдонимы users
должны использоваться в условиях JOIN
Я не уверен, почему вы даже делаете GROUP BY
, но то же самое и там, ссылка users
недействительна, потому что в объединениях нет однозначной таблицы users
, вы должныскажите ему, какую копию таблицы пользователей использовать.
Запрос должен выглядеть примерно так (я пропустил GROUP BY
, потому что неясно, что вы пытаетесь сделать с этим, не видя какой-то реальной таблицы)данные.
SELECT pm.receiver, pm.date_sent, pm.unread,
user_receiver.username AS receiver_name,
user_receiver.avatar AS receiver_avatar,
user_receiver.session_id AS receiver_session_id,
user_sender.username AS sender_name,
user_sender.avatar AS sender_avatar,
user_sender.session_id AS sender_session_id
FROM pm
INNER JOIN users AS user_receiver ON pm.receiver = user_receiver.id
INNER JOIN users AS user_sender ON pm.sender = user_sender.id
WHERE sender = :id OR receiver = :id
ORDER BY date_sent ASC