.
如上所示,我有 4 个表。现在我试图在一个查询中获取所有数据,包括文章主题、每篇文章的标签以及每篇文章的评论数。
我现在使用的 sql 查询是
SELECT
articles.subject, GROUP_CONCAT(tags.name) AS tags, COUNT(comments.aid) AS comments
FROM articles
LEFT JOIN comments ON comments.aid = articles.aid
LEFT JOIN relations ON relations.aid = articles.aid
LEFT JOIN tags ON tags.tid = relations.tid
GROUP BY
articles.aid
结果:[]中的数据是我实际得到的
array
(
1 => array
(
subject => foo
tags =>
comments => 1
)
2 => array
(
subject => bar
tags => html,mysql [html,mysql,html,mysql]
comments => 2 [4]
)
3 => array
(
subject => baz
tags => php
comments => 0
)
)
对于我的应用程序中的实际情况,标签的数量和评论的数量将相乘。例如:如果一篇文章有 4 条评论和 3 个标签,我的查询将导致
标签: html,css,php, html,css,php, html,css,php, html,css,php (代替 html,css,php)
评论:12(而不是 4)
我知道我的查询语句一定有问题,我只是不知道如何修复它。有人请帮忙。谢谢。