我的代码无法正常工作:
SELECT tbl2.entry_id, tbl2.field_id_2, group_concat(DISTINCT tbl2.tag_name SEPARATOR ', ') FROM
(SELECT e.entry_id, e.field_id_2, tbl1.tag_name
FROM (exp_channel_data e)
LEFT JOIN (SELECT te.entry_id, tag.tag_id, tag.tag_name FROM exp_tag_entries te, exp_tag_tags tag WHERE te.tag_id = tag.tag_id) tbl1
ON (e.entry_id = tbl1.entry_id)
WHERE e.entry_id IN (371, 373)) tbl2
GROUP BY tbl2.entry_id, tbl2.field_id_2
它返回:
371;<p>...</p>;digital strategy
371;<p>...</p>;seo
371;<p>...</p>;inbound marketing
373;<p>...</p>;infographic, strategy, social media
但应该是:
371;<p>...</p>;digital strategy, seo, inbound marketing
373;<p>...</p>;infographic, strategy, social media
请帮我解决这个问题。 “field_id_2”单元格的类型是文本,具有多行值。
最佳答案
试试这个
GROUP BY tbl2.entry_id
而不是
GROUP BY tbl2.entry_id, tbl2.field_id_2
并改变这个
group_concat(DISTINCT tbl2.tag_name SEPARATOR ', ')
至
group_concat(tbl2.tag_name SEPARATOR ', ')
关于MySQL 没有正确分组 'text' 单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873182/