我是SQL的初学者,我目前正在尝试使用HAVING CLAUSE,但它不起作用..
我有两张桌子:
tchat:
tchat_message:
所以我想要来自用户的最新消息。
首先:我加入了表:`
select user_id, user_message, max(date_message)
from tchat
inner join tchat_message on tchat.id=tchat_message.user_id
这里没关系。
第二:我使用了having子句:
select user_id, user_message, max(date_message)
from tchat
inner join tchat_message on tchat.id=tchat_message.user_id
group by user_id
having max(date_message) = date_message`
在这里我有一个错误,上面写着:
'having clause'
中的未知列'date_message'
有人有想法吗?
答案 0 :(得分:2)
您错误地使用了having
子句。以下内容更接近您的要求:
select tm.user_id, tm.user_message, tm.date_message
from tchat t inner join
tchat_message tm
on t.id = tm.user_id inner join
(select user_id, max(date_message) as maxdm
from tchat_message
group by user_id
) tmm
on tmm.user_id = tm.user_id and tmm.maxdm = tm.date_message;
您不需要外部查询中的group by
。您似乎也不需要tchat
表(如果您在该表的select
中有其他列,我就将其保留下来。)