我正在编写的查询有一些问题。这似乎是非常频繁的表结构,所以我希望得到一些帮助。
假设我有 3 个类似于 facebook 结构的表。Users
, Wall Posts
, 和Comments
. 用户可以发布墙帖,并对其他墙帖发表评论。
在用户页面上,我想显示用户墙帖子和该帖子有多少评论的计数。这是我到目前为止所拥有的
我Wall Post
使用用户 ID 作为表的内部连接来查询User
表。这为我提供了该用户页面的墙贴结果集。然后我遍历该结果集,从每个结果集中获取 Wall Post id,并在Comment
表中查询该 Wall Post Id 的评论计数。这可行,但是我必须两次访问数据库。谁能想到我可以通过一个查询来做到这一点?
第一个查询示例:
SELECT wallPost.*, user.currentDefault, user.displayName, user.userName
FROM wallPost
INNER JOIN user ON user.id = wallPost.sourceUserId
WHERE wallPost.recipientId = ? ORDER BY wallPost.id DESC
第二个查询示例:
SELECT COUNT(id) AS count
FROM comment
WHERE wallPostId = ?