join—如何在连接到另一个表时使用mysql中稍后添加的列select as query

monwx1rj  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(268)

我从这个查询中得到未知列错误。如何使用这些查询?

SELECT 
    (CASE 
        WHEN(c.from_user=144) 
        THEN c.to_user 
        ELSE c.from_user 
    END) as chatted_to 
FROM `chat_message` `c` 
LEFT JOIN `user` 
ON chatted_to = user.id 
WHERE (`to_user`=144) OR (`from_user`=144) 
GROUP BY `chatted_to`

上面写着:
“on子句”中的未知列“chatted\u to”。

anauzrmj

anauzrmj1#

你可以重复这个步骤 CASE 情况再次出现在 ON 子句,如下所示:

SELECT 
    (CASE 
        WHEN(c.from_user=144) THEN c.to_user 
        ELSE c.from_user 
    END) as chatted_to 
FROM `chat_message` `c` 
LEFT JOIN `user` 
ON 
    (CASE 
        WHEN(c.from_user=144) THEN c.to_user 
        ELSE c.from_user 
    END) = user.id 
WHERE (`to_user`=144) OR (`from_user`=144) 
GROUP BY `chatted_to`

相关问题