为了账号安全,请及时绑定邮箱和手机立即绑定

sql查询如何写?

sql查询如何写?

咕咕问 2018-01-25 15:45:29
假设一个问卷的在线答题问卷可以设置答题人所属部门的id列表,假设为  1,2,3,5,6(部门id是1,2,3,5,6的人可以答题)职员可以属于多个部门,也可以有所属部门的id列表,假设为6,7,8那么我现在要查询出能够有权限答题的职员的集合,该怎么来写这个sql。select * from staff where pardment  = 1 or padment like %,1,% or pardment like %,1% or pardment like %1,%主要是如果只用一个like的话   1可能会同时匹配到12,13,14,15而且职员也可以属于多个部门。   简化的sql该如何写?
查看完整描述

3 回答

?
产品经理不是经理

TA贡献481条经验 获得超143个赞

select * from staff 
where concat(',',department_id_list,',') 
regexp (
    select concat(',(',replace(q.department_id_list,',','|'),'),') from question q
    where question_naire_id='xxx'
);


查看完整回答
反对 回复 2018-01-26
?
咕咕问

TA贡献78条经验 获得超12个赞

//img1.sycdn.imooc.com//5a6ab626000138a109520411.jpg

//img1.sycdn.imooc.com//5a6ab62700019e3307590304.jpg

职员表和问卷表


查看完整回答
反对 回复 2018-01-26
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

你员工和部门是多对多关系。你还是把表结构贴出来吧。

查看完整回答
反对 回复 2018-01-25
  • 3 回答
  • 0 关注
  • 1629 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信