这可能仅仅是星期一的情况,但我的大脑似乎无法弄清楚我需要运行的查询以获得我需要的结果。
我有两张桌子; Message
和MessageTo
。 Message
记录原始消息 - 例如,Title,Body,DateSent等等。MessageTo
记录发送给收件人的消息的实例。例如,MessageTo
表中的多行可能指向Message
表中的单行 - 这意味着已向多个人发送了一条消息。 MessageTo
表中的基本信息是messageId,recipientId,acknowredDate和其他几个。
我需要的是一个返回Message
的查询,其中包含一个计数,显示已发送给的人数(例如,message {1在MessageTo
表上显示的次数)。
我的第一次尝试是进行一次查询以获取Message
的列表,然后执行第二次查询以获取MessageTo
表上的出现次数。但是,我想这样做只使用一个查询,如果可能的话 - 因为这个过程将重复多次,我想尽可能地使其流式化。重复的多个数据库查询并不理想。非常感谢任何帮助。
我使用SQLite
如果这有所不同,虽然我认为它与很多其他版本的SQL非常兼容。
答案 0 :(得分:3)
沿着这条线的东西应该有效。您没有列出唯一标识每条消息的字段,因此我使用的是“MessageId”,您应该更改为适用于您的数据库的内容。
Select
m.*
, (Select Count(*) From MessageTo mt where mt.MessageId = m.MessageId) As Cnt
From Message m