as
membuat alias kolom (dalam hal ini other_id
), dan Anda tidak dapat bergabung dengan alias kolom. Anda dapat menggunakan alias di ORDER BY
tapi tidak di tempat lain, kecuali alias berasal dari subquery.
Pilihan terbaik Anda di sini adalah mengulangi IF
fungsi di gabung:
SELECT
a.id,
a.from member_id,
a.to member_id,
IF(a.from member_id=1, a.to member_id, a.from member_id) as other_id,
a.text,
MAX(a.date sent) as date sent
FROM message a
JOIN members m on IF(a.from member_id=1, a.to member_id, a.from member_id) = m.id
WHERE (a.from member_id=1 OR a.to member_id=1) AND a.active=1
GROUP BY other_id
ORDER BY other_id DESC, date sent DESC