1. 程式人生 > >數據庫兩表連接四種方法

數據庫兩表連接四種方法

null nbsp _id 連接查詢 from where ext 左右 true

一般我們連接兩張表時,都是select xxx,xx from x1,x2 where x1.a=x2.a。其實數據庫還有4中join操作。

例如:表1:

student
s_id name sex
1 張三
2 李四
4 王五

表2:

class
c_id id name
1 1 11111
2 2 22222
3 3 33333
4 2 44444

1.連接查詢

select s.name s_name,s.sex s_sex,c.name c_name
from student s,class c
where s.s_id=c.s_id

  結果:

s_name
s_sex
c_name
張三 11111
李四 22222
李四 44444

2.inner join

select s.name s_name,s.sex s_sex,c.name c_name
from student s inner join class c on s.s_id=c.s_id

  結果:

s_name s_sex c_name
張三 11111
李四 22222
李四 44444

可以看出inner join 和我們直接連接查詢沒什麽差別!

3.left join

select s.name s_name,s.sex s_sex,c.name c_name
from student s left join class c on s.s_id=c.s_id

  結果:

s_name s_sex c_name
張三 11111
李四 22222
李四 44444
王五

4.right join

select s.name s_name,s.sex s_sex,c.name c_name
from student s right join class c on s.s_id=c.s_id

  結果:

s_name

s_sex

c_name
張三 11111
李四 22222
33333
李四 44444

5.full join

select s.name s_name,s.sex s_sex,c.name c_name
from student s full join class c on s.s_id=c.s_id

  結果:

s_name s_sex c_name
張三 11111
李四 22222
33333
王五
李四 44444

綜上可以看出:

普通連接和 inner join連接沒什麽差別!

left join:左表所有行都輸出,如果找不到右表對應字段,即該字段為null

left join:右表所有行都輸出,如果找不到左表對應字段,即該字段為null

left join:左右表行全部對應輸出,如果找不到對應字段,即為null

數據庫兩表連接四種方法