内部联接与数组ID

时间:2014-09-29 03:39:40

标签: mysql

我有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"

怎么办? 感谢

1 个答案:

答案 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