现在有两张表:部门表,员工信息表表结构如下:
部门表
员工表
其中,departType分为三个值:1,2,3
1 = 公司名称(这个无需显示)
2 = 部门
3 = 科室
4 = 班组通过这两张表的关联关系,想要实现的最终结果集为:请问,这样的sql查询语句要如何写?
部门表
员工表
其中,departType分为三个值:1,2,3
1 = 公司名称(这个无需显示)
2 = 部门
3 = 科室
4 = 班组通过这两张表的关联关系,想要实现的最终结果集为:请问,这样的sql查询语句要如何写?
解决方案 »
- pgpoolⅡ提供给前端的Ip port database user password JDBC怎么连接
- mysql所有的数据库后缀为*.MYD大小都为0,怎么回事?
- mysql 怎么导入/导出2个关联表中的数据
- 请高手指点下,这个sql有点不好写。
- mysql怎么输入不了中文?
- 怎样写一个每天定时执行的一个脚本,用来定时备份数据(mysql,在linux下)
- 如何使mysql支持汉字?
- 求助 sql语句报错
- MYSQL -5.6.10 WIN64 环境 下面 UTF-8问题
- 关于mysql主从备份数据变更以后position没有变化
- mysqli_real_connect(),mysqli_init(),mysqli_errno()
- 表设计题
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
ifnull((select departName from 部门表 where departID = a.deparID and departType = 1),'无') as 部门,
ifnull((select departName from 部门表 where departID = a.deparID and departType = 1),'无') as 科室,
ifnull((select departName from 部门表 where departID = a.deparID and departType = 1),'无') as 班组,
username
from 员工表 as a group by userID
if null((select departName from oa_department where departID = userinfo.deparID and departType = 1),'无') as bm,
if null((select departName from oa_department where departID = userinfo.deparID and departType = 1),'无') as ks,
if null((select departName from oa_department where departID = userinfo.deparID and departType = 1),'无') as bz,
userName
from oa_sys_userpost as userinfo group by userinfo.userID
我是按照博主的这样写的,可是数据库提示的错误信息如下:[SQL] select
if null((select departName from oa_department where departID = userinfo.deparID and departType = 1),'无') as bm,
if null((select departName from oa_department where departID = userinfo.deparID and departType = 1),'无') as ks,
if null((select departName from oa_department where departID = userinfo.deparID and departType = 1),'无') as bz,
userName
from oa_sys_userpost as userinfo group by userinfo.userID[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'null((select departName from oa_department where departID = userinfo.deparID an' at line 2
我三楼给你的回复,您可以可以忽略了。最后修改了一下sql语句,查询出来了,只是感觉好像不是太完整,没有上级部门的信息,都是单独的。select
ifnull((select departName from oa_department where departID = userinfo.departID and departType = 1),'无') as bm,
ifnull((select departName from oa_department where departID = userinfo.departID and departType = 2),'无') as ks,
ifnull((select departName from oa_department where departID = userinfo.departID and departType = 3),'无') as bz,
userName,
realName
from oa_sys_userpost as userinfo group by userinfo.userID结果: