Heim  >  Artikel  >  Datenbank  >  数据库中内连接、外连接、全连接

数据库中内连接、外连接、全连接

WBOY
WBOYOriginal
2016-06-07 14:53:261091Durchsuche

数据库中内连接、外连接、全连接 内连接:把两个表中数据对应的数据查出来 外连接:以某个表为基础把对应数据查出来(全连接是以多个表为基础) student表 no name 1 a 2 b 3 c 4 d grade表 no grade 1 90 2 98 3 95 www.2cto.com 内连接 inner join(查找条


数据库中内连接、外连接、全连接

 

内连接:把两个表中数据对应的数据查出来 

外连接:以某个表为基础把对应数据查出来(全连接是以多个表为基础) 

 

student表 

no name 

1 a 

2 b 

3 c 

4 d 

 

grade表 

no grade 

1 90 

2 98 

3 95 

  www.2cto.com  

内连接 inner join(查找条件中对应的数据,no4没有数据不列出来) 

语法:select * from student inner join grade on student.no = grade.no 

结果 

student.no name grade.no grade 

1 a 1 90 

2 b 2 98 

3 c 3 95 

 

左连接(左表中所有数据,右表中对应数据,即左边一定有数据,右边不一定有) 

语法:select * from student left join grade on student.no = grade.no 

结果: 

student.no name grade.no grade 

1 a 1 90 

2 b 2 98 

3 c 3 95 

4 d 

 

右连接(右表中所有数据,左表中对应数据,即右边一定有,左边不一定有) 

语法:select * from student right join grade on student.no = grade.no 

结果: 

student.no name grade.no grade 

1 a 1 90 

2 b 2 98 

3 c 3 95 

全外连接(表中数据=内连接+左边缺失数据+右边缺失数据)

  www.2cto.com  

语法:select * from student full join grade on student.no = grade.no 

结果: 

no name grade 

1 a 90 

2 b 98 

3 c 95 

4 d 

1 a 90 

2 b 98 

3 c 95 

 

交叉连接 (没有where字句时结果为笛卡尔积) 一般不用。

 

注:access 中不能直接使用full join ,需要使用union all 将左连接和右连接合并后才可以

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn