達成したいことは次のとおりです。作成者(テーブル「users」から)や投稿が属するカテゴリの名前(テーブル「categories」から)などのリンクされたエンティティもフェッチしながら、テーブル「posts」からすべての行を選択します。
これまでの私の2つのクエリは次のとおりです。
これは投稿を取得します。
SELECT
posts.*
, users.authorName AS author
FROM posts
INNER JOIN users
ON users.id = posts.author
そして、これは特定の投稿のカテゴリのコンマ区切りリストをフェッチします。
SELECT
GROUP_CONCAT(categories.category) AS categories
FROM categories
INNER JOIN post_category
ON post_category.categoryID = categories.id
WHERE
post_category.postID = ?
2つのクエリ自体は正常に機能します。
当然、この2つを組み合わせると、2番目のクエリのWHERE句は必要ありません。2番目のクエリを最初のクエリのSELECT句内のサブクエリとして使用しようとしましたが、すべての投稿のすべてのカテゴリのコンマ区切りのリストが取得されました。現在繰り返し処理している投稿のカテゴリのみが必要です。
どんな助けでも大歓迎です、そしてこれのどれかが不明確であるならば私は謝罪します-他の人々に説明することは言うまでもなく、私が考えるのは十分に難しいです;)