语境
当我尝试返回消息值行并查找存储在不同表中的相应的类似计数时,我无法理解 JOIN 语句的应用程序。我尝试从中提取的第一个表包含我想要的消息:
SELECT forums.forum_id, forums.message FROM forums LIMIT 3
然后,我尝试使用结果forum_id
值插入到第二个查询中,该查询获得类似的计数:
SELECT COUNT(forumvotes.forum_id) AS voteCount FROM forumvotes JOIN forums ON forumvotes.forum_id = forums.forum_id WHERE forumvotes.forum_id = [insert returned forum ids here]
问题
我相信我可以通过使用联接将这两个查询合并为一个,但我不确定如何做到这一点。当我像这样组合两者时,新voteCount
列返回已插入的所有论坛投票的计数,而不仅仅是我想要的三个特定消息的喜欢计数:
SELECT forums.forum_id, forums.message, (SELECT COUNT(forumvotes.forum_id) AS voteCount FROM forumvotes JOIN forums ON forumvotes.forum_id = forums.forum_id WHERE forumvotes.forum_id = forums.forum_id) AS voteCount FROM forums LIMIT 3
因此,查询返回三行,每行都包含单独的消息(这很好),但它们也返回相同的voteCount
值 13,因为数据库中已插入 13 个点赞,但每行的voteCount
值只能是一个或两个,因为每条消息只有一两个点赞。
如何将这两个查询合并为一个?如果有任何困惑请告诉我。
手掌心
叮当猫咪
呼如林