当连接到另一个表时,如何使用MYSQL中稍后添加的select as查询列

当连接到另一个表时,如何使用MYSQL中稍后添加的select as查询列,mysql,join,Mysql,Join,我从此查询中获得未知列错误。如何使用这些查询 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_use

我从此查询中获得未知列错误。如何使用这些查询

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_to”


您可以在
ON
子句中再次重复
CASE
条件,如下所示:

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`

您可以在
ON
子句中再次重复
CASE
条件,如下所示:

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`

当在chatted_to=user.id上使用
时,您不能再次重复
CASE
部分吗?
ON(CASE when(c.from_user=144)然后c.to_user else c.from_user END)=user.id
谢谢您的回答。它是有效的。当在chatted_to=user.id上使用
时,您不能重复
CASE
部分吗?id
ON(CASE when(c.from_user=144)然后c.to_user else c.from_user END)=user.id
谢谢您的回答。它起作用了。