我使用此查询选择所有文章:
SELECT articles.*,categories.category_name,users.username,tags.tag
FROM articles
LEFT JOIN `categories` ON articles.category_id = categories.category_id
LEFT JOIN `users` ON articles.author_id = users.user_id
LEFT JOIN `tags` ON articles.article_id = tags.article_id
ORDER BY articles.date_added DESC
我有另一个表comments
,我想计算有多少条评论,其中article_id在article表中= article_id。我尝试了COUNT,但它只返回一个结果。我怎么能用一个查询呢?
答案 0 :(得分:1)
您可以在SELECT子句中使用子查询:
SELECT articles.*,categories.category_name,users.username,tags.tag, (SELECT count(*) FROM comments c WHERE c.article_id = articles.article_id) as comments_count
答案 1 :(得分:0)
正如arnaud576875所述,您可以使用子查询来提取摘要数据。
我从你的SQL中注意到的两件事并不是问题的一部分,但值得指出。
所以而不是
SELECT articles.*,categories.category_name,users.username,tags.tag
FROM articles
LEFT JOIN `categories` ON articles.category_id = categories.category_id
LEFT JOIN `users` ON articles.author_id = users.user_id
LEFT JOIN `tags` ON articles.article_id = tags.article_id
ORDER BY articles.date_added DESC
你的代码
SELECT a.*, c.category_name, u.username, t.tag
FROM articles a
LEFT JOIN `categories` c ON a.category_id = c.category_id
LEFT JOIN `users` u ON a.author_id = u.user_id
LEFT JOIN `tags` t ON a.article_id = t.article_id
ORDER BY a.date_added DESC