`

数据查询多表连接查询

阅读更多

连接查询

多表连接分为:内连接和外连接,结合示例说明它们之间的差别和应用

Employee表                                                  

eNo

eName

Age

depNo

1

张小

27

1

2

黄二

20

1

3

卫三

33

2

4

齐七

27

 

Department

dNo

dName

1

技术

2

人事

3

后勤

4

销售

 

1.内连接--inner join 

查询员工编号、姓名、年龄和所在部门名称,内连接查询:

Select e.eNo,e.eName,e.age,d.dName 

     From employee as e (inner) join department as d 

     On e.depNo=d.dNo

employeedepartment之间通过键连接,employee中为depNodepartment中为dNo,语句中在on后面指出

查询结果为:

eNo

eName

Age

dName

1

张小

27

技术

2

黄二

20

技术

3

卫三

33

人事

内连接又称为等值连接,只返回由键连接符合条件的结果

2.外连接

内连接查询只能获得两表中具有‘共同’部分的结果,有时候我们需要employee中所有的数据或者department中所有的数据,这可以使用外连接实现。外连接包括左外连接、右外连接和全连接,其作用不同。

1)左外连接--left out join以左表为基准表,返回左表的所有数据和右表中符合条件的数据,如果右表中没有对应的值则为null

左外连接查询:

Select e.eNo,e.eName,e.age,d.dName

From employee e left out) join department d

On e.depNo=d.dNo

查询结果为:

eNo

eName

Age

dName

1

张小

27

技术

2

黄二

20

技术

3

卫三

33

人事

4

齐七

27

null

 

(2)右外连接--right out join 以右表为基准表,结果返回右表所有数据和左表符合条件的数据,如果左表中没有对应的值则返回null

右外连接查询:

Select e.eNo,e.eName,e.age,d.dName

From employee e right (out) join department d

On e.depNo = d.dNo

查询结果:

eNo

eName

Age

depNo

1

张小

27

技术

2

黄二

20

技术

3

卫三

33

人事

null

null

null

后勤

null

null

null

销售

 

(3)全连接--full join 查询结果返回两个表中所有数据

全连接查询:

Select e.eNo,e.eName,e.age,d.Name

From deployee e full join department d

On e.depNo = d.dNo

查询结果:

eNo

eName

Age

depNo

1

张小

27

技术

2

黄二

20

技术

3

卫三

33

人事

4

齐七

27

null

null

null

null

后勤

null

null

null

销售

 

   

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics