4.3多表查詢
--union
select *from t1
union
select *from t2;
-- union all,其中(a,12) 出現(xiàn)了2次
select * from t1
union all
select * from t2;
- 查詢 manager 的姓名、所屬部門(mén)名稱和入職日期
-- 使用 on 聲明連接條件
select ename,dname,job,hiredate
from emp
inner join dept on emp.deptno=dept.deptno
where job='manager';
-- 使用 using 聲明連接條件
select ename,dname,job,hiredate
from emp
inner join dept using (deptno)
where job='manager';
查詢每位員工的 ename、dname、sal
-- 使用 on 聲明連接條件
select ename,dname,sal from emp
left join dept on emp.deptno=dept.deptno;
-- 使用 using 聲明連接條件
select ename,dname,sal
from emp
left join dept using(deptno);
查詢各地區(qū)的員工數(shù)量--
-- 使用 on 聲明連接條件
select loc,count(empno) 員工數(shù)
from emp right join dept on emp.deptno=dept.deptno
group by loc;
-- 使用 using 聲明連接條件
select loc,count(empno) 員工數(shù)
from emp
right join dept using (deptno)
group by loc;
-- 對(duì)表 t1 和表 t2 進(jìn)行全連接
select * from tl left join t2 on t1.公共字段 1=t2。公共字段2
union
select * from tl right join t2 on t1.公共字段1=t2.公共字段2;
--查詢所有員工的姓名及直屬領(lǐng)導(dǎo)的姓名
select 員工表 .ename 員工姓名 ,領(lǐng)導(dǎo)表 .ename 領(lǐng)導(dǎo)姓名
from emp 員工表 left join emp 領(lǐng)導(dǎo)表 on 員工表 .mgr= 領(lǐng)導(dǎo)表empno;
查詢?nèi)肼毴掌谠缬谥睂兕I(lǐng)導(dǎo)的員工的姓名及所屬部門(mén)
select 員工表 .empno,員工表 .ename,dname
from emp 員工表
left join emp 領(lǐng)導(dǎo)表 on 員工表 .mgr= 領(lǐng)導(dǎo)表 .empno
left join dept on 員工表 .deptno=dept.deptno
where 員工表 .hiredate< 領(lǐng)導(dǎo)表 .hiredate;
-- 使用 from 子句
select * from t1,t2;
-- 使用 cross join
select * from t1 cross join t2;
-- 表 t1和表 t2 中,均包含 4 條記錄,最后返回 4*4,即 16 條記錄
根據(jù)分組邏輯創(chuàng)建表--
create table salgrade(grade int,losal int,hisal int);
insert into salgrade values('低收入人群,700,1500), ('中等收入人群,,1501,3000), ('高收入人群,,3001,9999);
使用 on 聲明不等值的連接條件
select empno,ename,sal,grade
from emp left join salgrade
on sal between losal and hisal;
-- 使用 where 聲明不等值的連接條件
select empno,ename,sal,grade
from emp,salgrade
where sal between losal and hisal;








暫無(wú)數(shù)據(jù)