6 多表查詢語句

2021-09-18 02:39:53 字數 1741 閱讀 1258

六、多表查詢語句

連線型別:

自然連線: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 也叫等值鏈結。內連線具有...