.
上記のように4つのテーブルがあります。現在、記事の件名、各記事のタグ、各記事のコメント数を含むすべてのデータを 1 つのクエリで取得しようとしています。
私が今使っている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
)
)
ここでのアプリケーションの実際の状況では、タグの数とコメントの数は互いに乗算されます。例: 1 つの記事に 4 つのコメントと 3 つのタグがある場合、クエリは次のようになります。
タグ: html,css,php, html,css,php, html,css,php, html,css,php (html,css,php の代わりに)
コメント: 12 (代わりに 4)
クエリステートメントに何か問題があるに違いないことはわかっていますが、それを修正する方法がわかりません。誰か助けてください。ありがとう。