2
私は記事のセットを持っています。これらの記事のいくつかにはx個のタグが割り当てられています。MySQL:オプションでビルドグループの連結フィールド
SELECT
に指定されている書式の記事をすべて選択し、記事にもいくつでもタグが割り当てられている場合は、それらを単一のGROUP_CONCAT
フィールドに入れます。
以下のSQLはそれだけで少なくとも一つのタグを持って記事を取得除いて、私は必要なすべてを、行います。
タグ付けの要件がオプションであるようにするにはどうすればよいですか?
SELECT d.entry_id AS entry_id
, d.field_id_40 AS body
, t.title AS title
, t.url_title AS url_title
, t.entry_date AS entry_date
, GROUP_CONCAT(g.tag_name ORDER BY g.tag_name) AS tag
FROM exp_channel_data d
, exp_category_posts c
, exp_channel_titles t
, exp_tagger_links l
, exp_tagger g
WHERE t.YEAR > '2005'
AND t.site_id = d.site_id
AND d.site_id = 9
AND (c.cat_id = 95
OR c.cat_id = 93
OR c.cat_id = 64
OR c.cat_id = 24
)
AND d.entry_id = t.entry_id
AND t.entry_id = c.entry_id
AND t.STATUS = 'open'
AND l.tag_id = g.tag_id
AND d.entry_id = l.entry_id
GROUP BY d.entry_id
使用' JOIN'を見てみたいことがあります。それでは、あなたの問題を解決するために 'INNER JOIN'を' LEFT JOIN'に変更するのは簡単でしょう。 –