我很难想出如何说出这个问题所以我会给你一个例子。
假设一个用户请求一个页面,该页面将显示多篇文章和多篇评论。因此,您不仅需要选择多篇文章记录,而且这些记录中的每一条记录都需要有几条与之相关的评论记录。
完成此任务的最佳查询是什么?感谢。
答案 0 :(得分:3)
这不是绝对正确或错误,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;
列注释将包含所有注释id,以及comments_count返回每篇文章的注释数
PS :我认为左连接更合适
答案 1 :(得分:1)
您想使用INNER JOIN。
SELECT
article.*,
comment.*
FROM
article
INNER JOIN
comment
ON
comment.article_id = article.id
这将为您提供冗余数据(多行的相同文章数据),但只有一个sql语句/连接到数据库。