mysql查询逗号分隔

seal表
seal_id name
1 合同章
2 财务章
3 法人章

data表
id seal_id
1 1,2
2 1,3
3 1,2,3

如何查询data表连seal表 得到
array(
[0]=>array('id'=1,'name'=合同章,财务章),
[1]=>array('id'=2,'name'=合同章,法人章 ),
[2]=>array('id'=3,'name'=合同章,财务章,法人章 ),

)

求大神们指导 感激不尽T.T

阅读 2.9k
3 个回答
SELECT data.id,GROUP_CONCAT(seal.name) AS name 
FROM data 
left join seal on FIND_IN_SET(seal.id,data.seal_id) 
GROUP BY data.id;
    这个好像不能直接关联表吧,设计表的时候应该拆分表
    data表
    id
    1 
    2 
    3 
    seal表
    seal_id name
    1 合同章
    2 财务章
    3 法人章 
    
    增加中间表
    data_seal表
    data_id seal_id
    1        1
    1        2
    2        1
    2        3
    
    
select d.id,s.name from data d left join seal s on s.seal_id=sd.seal_id left join  data_seal sd on sd.data_id=d.id and sd.seal_id=s.seal_id
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题