0

这可能只是周一的情况,但我的大脑似乎无法弄清楚我需要运行的查询以获得所需的结果。

我有两张桌子;MessageMessageToMessage记录原始消息——例如,标题、正文、发送日期等。MessageTo记录发送给接收者的该消息的实例。例如,表中的多行MessageTo可能指向表中的单行Message——这意味着一条消息已发送给多个人。表中的基本信息MessageTo是 messageId、receiverId、acceptedDate 和其他一些信息。

我需要的是一个返回Messages 的查询,其计数显示它已发送给多少人(例如,该 messageId 出现在MessageTo表上的次数)。

我对此的第一次尝试是进行一次查询以获取Messages 的列表,然后进行第二次查询以获取MessageTo表上出现的次数。但是,如果可能的话,我想只使用一个查询来做到这一点——因为这个过程会重复很多次,我想让它尽可能流线型。重复的多个数据库查询并不理想。任何帮助深表感谢。

我正在使用SQLiteif that make a difference,尽管我认为它与许多其他版本的 SQL 非常兼容。

4

1 回答 1

3

沿着这条线的东西应该起作用。您没有列出唯一标识每条消息的字段,因此我使用的是“MessageId,您应该更改为您的数据库中适用的内容。

Select
  m.*
, (Select Count(*) From MessageTo mt where mt.MessageId = m.MessageId) As Cnt
From Message m
于 2013-10-14T11:23:06.437 回答