我有mysql数据库
A/ id, name B/ id, title, A_ids A_ids array id table A ex: "1,4,5"
相同数据
A 1; "HaNoi" 2; "HCM"; 3; "HP" B 1; "abc","1,2" 2; "ztz","1" 3; "abc","3,2" 4; "ztz","3"
我想要结果
1; "abc","HaNoi,HCM" 2; "ztz","HaNoi" 3; "abc","HP,HCM" 4; "ztz","HP"
怎么办? 感谢
答案 0 :(得分:1)
您需要将find_in_set()
用于加入,group_concat()
用于输出:
select b.id, b.title, group_concat(a.name order by a.id) a_names
from tableb b
left join tablea a on find_in_set(a.id, b.A_ids) > 0
group by 1, 2
使用您的示例数据查看demo on SQLFiddle。