检查线程的最后发件人和更新状态
我有两个表
消息
id ,thread_id ,sender_id ,message_content
1. 10. 2. message_content_1
2. 5. 1 message_content_2
线程
id status
5. close
10. Open
我要实现的目标是,如果最新的send_id!= 1(aka not admin)>我想更新线程状态要打开。
到目前为止,我做了什么,
UPDATE thread
SET thread.status=open
RIGHT JOIN message
ON thread.id=message.thread_id
WHERE message.senderId!=1 AND (SELECT max(message.id) FROM message WHERE message.thread_id=thread.id)
我做错了什么?
I have two tables
message
id ,thread_id ,sender_id ,message_content
1. 10. 2. message_content_1
2. 5. 1 message_content_2
thread
id status
5. close
10. Open
What I am trying to achieve is if the latest send_id!=1(aka not admin) > I want to update the thread status to open .
What I did so far
UPDATE thread
SET thread.status=open
RIGHT JOIN message
ON thread.id=message.thread_id
WHERE message.senderId!=1 AND (SELECT max(message.id) FROM message WHERE message.thread_id=thread.id)
What did I do wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
first_value()
窗口函数为每个thread_id
最后sender_id
:请参阅 demo 。
。
Use
FIRST_VALUE()
window function to get for eachthread_id
the lastsender_id
:See the demo.
我希望这会起作用。
i hope this would work.