MySQL-mysq 的数据查询问题

发布于 2016-12-08 03:50:39 字数 471 浏览 1166 评论 2

需要查找某个用户所在的辅助部门名称,使用以下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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想挽留 2017-06-07 12:17:04

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

虐人心 2017-05-24 13:26:30

SELECT *
FROM DEPARTMENT
WHERE FIND_IN_SET( dept_id, (
SELECT dept_id_other
FROM user
WHERE user_id ='zl'
) )

帮你把语句写好了,保证好用,测试下吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文