mysql查询职位怎么查 mysql查询部门员工人数

MySQL子查询(六)定义:查询中嵌套查询就是子查询
子查询的本质:
找出工资大于Mark的员工名字和工资
分析:
1.查询出Mark的工资是多少
2.查询出高于1450工资的人
整合成子查询
子查询的特点:
为什么相关子查询的效率极其低下?
结论:
性能排序/优先使用
关联/分组查询无关子查询相关子查询
1. 找出工资比'BLAKE'多的员工
2. 列出薪金高于公司平均薪金的所有员工,所在部门
3. 查询出工资最低的员工的姓名,工作,工资
4.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称
或者
5.查找出职位和'MARTIN' 或者'SMITH'一样的员工的平均工资
6. 列出薪金比“BLAKE”或“WARD”多的所有员工的编号、姓名、部门名称、其领导姓名 。
7. 找出各个部门中大于他所在部门平均工资的员工名和工资
8. 查找出收入(工资加上奖金) , 下级比自己上级还高的员工编号,员工名字,员工收入
9. 得到每个月工资总数最少的那个部门的部门编号,部门名称,部门位置
10. 查找出部门10和部门20中,工资最高第3名到工资第5名的员工的员工名字,部门名字,部门位置
11. 以职位分组,找出平均工资最高的两种职位
12. 查询出各部门总薪资,平均薪资,总人数,显示部门编号,部门名称与部门总薪资(没有员工的部门也需要统计)
MySQL联表查询部门id跟职位id在一张表,现在怎么做联表查询?是两张表 , 一张员工表user含有字段用户ID,部门ID , 职位ID,一张职位career表含有部门/职位ID,部门/职位名称,对吧?求员工的职位和部门
select u.id,u.name,c.name as 部门,cc.name as 职位 form user as u
join career as c on u.部门ID=c.id
join career as cc on u.职位ID=c.id
php查询mysql数据库中所有的四级数据以及第四级数据对应的第三级和第二级的名称字段怎么查?这个需要用程序递归处理
$dept_tree=[];
$deptid = 19;
while($deptid0){
//假设你的数据库查询是这个函数,根据条件直接查询一条记录返回
$dept = getone('department',['id'=$deptid]);
//防止数据丢失出错
if(empty($dept))break;
array_unshift($dept_tree,$dept);
$deptid = $dept['dep_parentid'];
//如果需要防止数据错乱出现递归 , 这里可以判断一下
if(in_array($deptid,array_column($dept_tree , 'id') !== false){
//说明职位关系乱了,有死循环
break;
}
}
可以把这段代码封装成一个函数使用 。这里就不论从哪一级开始查询了,总是能把该职位及其上级全部查询出来,按顺序放进数组里
$dept_tree 类似这样
array(
0=array(
'id'=1,
'dep_parentid'=0,
'dep_name'='顶级',
),
1=array(
'id'=2,
'dep_parentid'=1,
'dep_name'='国灿金融',
),
2=array(
'id'=4,
'dep_parentid'=2,
'dep_name'='招聘部',
),
3=array(
'id'=19,
'dep_parentid'=4,
'dep_name'='经理助理',
),
)
显式游标怎么查询某一员工的工号,职位,薪酬信息使用显式游标查询某一员工的工号、职位、薪酬信息,可以按照以下步骤进行:
1、DECLAREemp_cursorCURSORFORSELECTempno,job,salFROMempWHEREempno=7369,这里的emp_cursor是游标变量的名称,SELECT语句是查询语句,WHERE子句用于指定查询条件,这里查询员工号为7369的员工信息 。
2、打开游标,例如:OPENemp_cursor 。这里的emp_cursor是游标变量的名称 。
3、获取游标中的数据,例如:FETCHempcursorINTOvempno,vjob,vsal 。这里的vempno、vjob、v_sal是变量,用于存储查询结果中的工号、职位、薪酬信息 。

推荐阅读