刚加入,需要帮助。我已经建立了一个消息传递系统的种类,我想附加读/未读的价值观,以整个线程/对话的人正在进行。为此,我有3个专门与线程相关的表: threads, posts, post_recipients
```
threads
- id
- user_id
posts
+id
- title
- text
- thread_id
- author
post_recipients
- id
- post_id
- recipient_id
- status
我找到了一种获取线程列表的方法,所以现在我要根据特定收件人查询每个线程的已读/未读邮件数。
这是我到目前为止写的,但是得到了一个错误“未知列(posts.status)”,所以我猜我要么做的是求和错误,要么做的是连接错误:
select threads.id as thread, sum(posts.status = 1) as cnt
from threads
left join (select thread_id, posts.user_id, status from posts left join post_recipients on posts.id = post_recipients.post_id) as posts on posts.thread_id = threads.id
where threads.id = 4;
2条答案
按热度按时间9jyewag01#
根据你的模式,没有
status
柱下posts
但是有一个在下面post_recipients
.1tu0hz3e2#
你应该试着用case