次のmysqlクエリがあります。これは、カテゴリごとのエントリのリストを生成しています。ただし、生成されるエントリの一部は重複しています(重複するentry_id-複数のカテゴリに表示されるため)。重複がないことをどのように確認できますか?との他のバリエーションを使用しようとしましGROUP BY
たDISTINCT
が、成功しませんでした。ありがとうございました。
SELECT ct.entry_id, ct.title, c.cat_name
FROM exp2_categories c
LEFT JOIN exp2_category_posts cp ON (cp.cat_id = c.cat_id)
LEFT JOIN exp2_channel_titles ct ON (ct.entry_id = cp.entry_id)
WHERE c.group_id = '4'
GROUP BY c.cat_id
ORDER BY ct.entry_date DESC
編集:
最初の答えは素晴らしいですが、カテゴリごとに複数のエントリが生成されます。カテゴリごとに1つの一意のエントリが必要です。申し訳ありませんが、元の質問ではもっと具体的にすべきでした。
たとえば、生成されるもの-エントリは一意ですが、エントリが多すぎます。
entry_id_1 Title 1 Category_1, Category_2
entry_id_3 Title 3 Category_2
entry_id_345 Title 345 Category_3
entry_id_123 Title 123 Category_4, Category_3, Category_1
entry_id_678 Title 678 Category_4
望ましい結果-エントリは一意であり、カテゴリごとに1つのエントリのみがあります。
entry_id_1 Title 1 Category_1
entry_id_3 Title 3 Category_2
entry_id_345 Title 345 Category_3
entry_id_123 Title 123 Category_4