有条款不起作用
Having clause does not work
我是 SQL 的新手,我目前正在尝试使用 HAVING 子句,但它不起作用..
我有两个表:
聊天:
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`
这里我有一个错误:
Unknown column 'date_message' in 'having clause'
有人知道吗?
您错误地使用了 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
table(我把它留了下来,以防您在 table 中的 select
中有其他列)。
我是 SQL 的新手,我目前正在尝试使用 HAVING 子句,但它不起作用..
我有两个表:
聊天:
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`
这里我有一个错误:
Unknown column 'date_message' in 'having clause'
有人知道吗?
您错误地使用了 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
table(我把它留了下来,以防您在 table 中的 select
中有其他列)。