この質問が何度も出されたことは知っています (ただし、解決策はまだ見つかりませんでした)。
基本的な質問: テーブルposts、comments、user ... を 1 つの select ステートメントで選択して、すべての投稿とすべてのコメント (comment.user、comment.text、comment.timestamp を使用) を表示できますか? そのような select ステートメントはどのようになりますか? そうでない場合、最も簡単な解決策は何ですか?
私もtable を使用しJOIN
てcomments
テーブルを試してみましたが、各行に 1 つのコメントしかないか、各コメントだけでなく、それらの投稿も複数回取得しました!?posts
GROUP BY
最初のリンク (ネストされた mysql_query とフェッチ) と 2 番目のリンク (配列を使用) の解決策を試しました。ただし、最初は一連のエラーが発生し(その投稿の構文は正しくないようで、解決方法がわかりませんでした)、2番目は配列に問題がありました。
私のクエリは今まで次のようになっています。
SELECT p.id, p.title, p.text, u.username, c.country_name, (SELECT SUM(vote_type) FROM votes v WHERE v.post_id = p.id) AS sum_vote_type FROM posts p LEFT JOIN user u ON ( p.user_id = u.id ) LEFT JOIN countries c ON ( c.country_id = u.country_id ) ORDER BY $orderby DESC
投稿やコメントを表示することで、この問題はあまり一般的ではないのではないかと思っていました...?
事前にご協力いただきありがとうございます。