MySQL-mysq 的数据查询问题
需要查找某个用户所在的辅助部门名称,使用以下sql语句只能查询出一个部门名称:
select DEPT_NAME from DEPARTMENT where dept_id in(select dept_id_other from user where user_id='zl')
dept_id_other字段在user表中是char类型的,而dept_id字段在department表中是int类型,使用
select dept_id_other from user where user_id='zl'
查询出来的是dept_id_other值是38,9,但是使用整个的sql语句只能查出dept_id为38的部门名称,
若直接使用
select DEPT_NAME from DEPARTMENT where dept_id in(38,9)
可以查出两个部门的名称,请问这样的查询该如何写sql语句
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
in where 子句返回布尔值代表 'in' 还是'not in',如果为真则打印该条记录,
可以理解为
foreach row in (select * from DEPARTMENT)
foreach dept_id_other in (select dept_id_other from user WHERE user_id ='zl'))
if(dept_id in (dept_id_other))
echo row;//该字段是char '38,1' != 38,1
endif
endforeach
endforeach
SELECT *
FROM DEPARTMENT
WHERE FIND_IN_SET( dept_id, (
SELECT dept_id_other
FROM user
WHERE user_id ='zl'
) )
帮你把语句写好了,保证好用,测试下吧