六、多表查詢語句
連線型別:
自然連線:natural joins
外連線:outer joins
交叉連線:cross joins
建立自然連線:
1、兩個表中所有相同名字的列
2、選取匹配列的相同值
3、列的資料型別要一致
select e.ename,e.job,e.sal,d.dname
from emp e natural join dept d;
using語句:
1、如果個別列有相同名字但資料型別不同可以使用using語句指定等值連線列
2、有多列時using只能匹配一列
3、natural join 與 using 是互斥的(只可以用乙個)
4、using使用的列不可以使用任何限定詞
select ename,job,sal,dname
from emp join dept
using (deptno);
on語句:
1、自然連線的條件基本上是同列名的等值連線
2、為了指定任意條件
3、必須要有列的限定詞
select e.ename,e.job,e.sal,d.dname
from emp e join dept d
on (e.deptno=d.deptno);
on語句更容易理解
不等連線:retrieving records with nonequijoins
sql> select e.ename,e.sal,g.grade
2 from emp e join salgrade g
3 on e.sal between g.losal and g.hisal;
返回名字,薪水,薪水等級三列
不匹配用外連線:
1、兩個表內連線加上左(右)不匹配的行,就是左(右)連線
2、全外連線就等於內連線加上左右連線不匹配的行
左外連線:left outer join
select e.ename,e.sal,d.dname
from emp e left outer join dept d
on (e.deptno=d.deptno);
右外連線:right outer join
select e.ename,e.sal,d.dname
from emp e right outer dept d
on (e.deptno=d.deptno);
全外連線:
selecet e.ename,e.sal,d.dname
from emp e full outer join dept d
on (e.deptno=d.deptno);
左外連線,以左邊的為主表,顯示左邊不匹配行
右外連線,以右邊的為主表,顯示右邊不匹配行
全外連線,顯示全部不匹配行
笛卡爾乘積
兩張表的行數相乘得到的新錶
交叉連線:
select ename,deptno from emp
cross join dept;
三表連線:
select emp,loc,deptno
from emp e
join dept d
on d.deptno=e.deptno 條件1
join lications l
on d.loc=l.loc; 條件2
增加條件使多個表可以連線
php 多表查詢 語句
select from yonghu where login name lhp and login pwd 123 select from juese select from yonghu where yonghu id 1 select juese id from juese where jues...
T SQL語句 多表查詢
1.內連線 內連線 inner join 只返回兩個資料集合之間匹配關係的行,將位於兩個互相交叉的資料集合中重疊部分以內的資料行連線起來。內連線使用比較運算子進行表間某些列資料的比較操作,並列出這些表中與連線相匹配的資料行。select a.name 姓名a,a.school 學校a,b.name ...
多表鏈結查詢語句
多表查詢常涉及到到表連線的問題,主要涉及到內連線 inner join 外連線 left join or left outer join right join or right outer join full join 和交叉連線 cross join inner join 也叫等值鏈結。內連線具有...