- 列出所有部门的详细信息和部门人数。
这里需要部门的详细信息和部门人数,显然需要我们进行表的连接
那么这里我们先贴出两张表长啥样
emp:
dept:
像这样的关于两张表的连接,那么我们一般先一张一张来
比如这里我们可以先解决部门的详细信息
select * from dept
然后解决部门人数
select deptno,count(1) 人数 from emp group by deptno;
那么接下来我们的任务就是将这两张表合成一张表,相当于进行表的连接,
select dept.* ,t1.rs from dept,(
select deptno,count(1) rs from emp group by deptno) t1
where dept.deptno=t1.deptno
对于第二张我们只需要取出人数就行了
- 列出从事同一种工作但属于不同部门的员工的不同组合。
select * from emp emp1 ,emp emp2
where emp1.job=emp2.job and emp1.deptno!=emp2.deptno and emp1.empno!=emp2.empno
像这种涉及到表的自身连接的问题,一般都需要对同一张表进行重命名,不然找不到比较的对象