MySQL 关联查询
查询部门和部门对应的员工信息:
mysql
select *
from dept, emp
where dept.deptno = emp.deptno;
1
2
3
2
3
查询所有部门和部门下的员工,如果部门下没有员工,则员工显示为null(一定要列出所有部门):
mysql
select *
from dept
left join emp no dept.deptno = emp.deptno;
1
2
3
2
3
上面这个 SQL 查询语句使用了 left join
关键字来连接 dept
和 emp
表,并以 deptno
字段为连接条件,查询并返回两张表中相关记录的字段值。具体地说,该查询会遍历 dept
表中的每一行记录,然后查找与之对应的 emp
表中的记录,如果两者中存在符合连接关系的记录,则会将它们的字段值合并为一条查询结果,并以列的形式呈现在最终的查询结果中。如果某个部门在 emp
表中没有关联记录,则该部门在查询结果中也会被保留,但其关联字段值会被填充为 null
。
查询每个部门的员工的数量:
mysql
select dept.deptno, count(emp.deptno)
from dept
left join emp on dept.deptno = emp.deptno
group by dept.deptno;
1
2
3
4
2
3
4