mysql一个字段包含多个数据的关联查询

         最近遇到一种情况,某个申请单有一个主要负责人,多个协作处理人,在这种情况下我们一般的做法是把主要负责人id直接存在申请单据里面,然后新增一个中间表A来存储协作人id(或者全部存储在新增的中间表A里面),但是由于数据库表太多,切协作人id一般只在统计是才有意义,所以直接在申请单据里面新增一个协作人字段存储所有的协作人id。

表结构大致如下:

申请单application:

liable_id AAA
coo_id a,b,c
字段

用户表user:

字段
user_id
user_name

查询可以使用:

select GROUP_CONCAT(b.user_name) as user_name_concat    from application a 
LEFT JOIN user b on FIND_IN_SET(b.user_id,a.coo_id)>0;

直接将存储了多个用户id的coo_id字段的id查找出用户名字方便展示。

也可使用:

select  b.user_name    from application a 
LEFT JOIN user b on FIND_IN_SET(b.user_id,a.coo_id)>0;

查找出多条数据用于统计。


你可能感兴趣的:(mysql)