sql >> Database teknologi >  >> RDS >> Mysql

Får ukendt kolonnefejl ved brug af 'som' i mysql-sætning

as opretter et kolonnealias (i dette tilfælde other_id ), og du kan ikke deltage i et kolonnealias. Du kan bruge et alias i ORDER BY men ingen andre steder, medmindre aliaset kommer fra en underforespørgsel.

Din bedste mulighed her ville være at gentage IF funktion i joinforbindelsen:

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



  1. Vis sidste besked i et meddelelsesarray

  2. Sådan rettes Meddelelse:SQLSTATE[08004] [1040] For mange forbindelser

  3. Tilføj indekser for at fremskynde Geokoder nærsøgning

  4. Opret en samlet forbindelse til MySQL i Android