我很难想出如何准确地表达这个问题,所以我给你举个例子。
假设用户请求一个页面,该页面将显示多篇文章以及对其中每一篇文章的多条评论。因此,您不仅需要选择多条文章记录,而且每条记录都需要关联多条评论记录。
完成此任务的最佳查询是什么?谢谢。
最佳答案
这没有绝对的对或错,join
将返回更大的数据集,但可以在一次查询中获取所有数据
看你的需求,如果你只需要评论数+评论列表ID(供以后使用),可以考虑使用group_concat
select
article.*,
group_concat(comment.id) as comments,
count(comment.id) as comments_count
from
article
left join comment
on comment.article_id=article_id
group by article.id;
comments 列将包含所有评论id,comments_count 返回每篇文章的评论数
PS:我觉得left join比较合适
关于sql - 用于选择多行的最佳 mysql 查询,每个行都需要来自另一个表的多个关联行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4654899/