sql >> Databasteknik >  >> RDS >> Mysql

Får okänt kolumnfel när du använder 'som' i mysql-satsen

as skapar ett kolumnalias (i det här fallet other_id ), och du kan inte gå med på ett kolumnalias. Du kan använda ett alias i ORDER BY men ingen annanstans, om inte aliaset kommer från en underfråga.

Det bästa alternativet här skulle vara att upprepa IF funktion i join:

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. Tredjeparts Oracle-leverantörer för .Net med stöd för objekttyp

  2. Hur infogar man specialtecken i en databas?

  3. fråga om postgresql bindningsvariabler

  4. Hur får jag det maximala värdet för ett heltal i SQL?