当连接到另一个表时,如何使用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
谢谢您的回答。它起作用了。