首页 > 数据库技术 > 详细

数据库两表连接四种方法

时间:2018-06-09 18:46:50      阅读:198      评论:0      收藏:0      [点我收藏+]

一般我们连接两张表时,都是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

 

 

 

 

 

数据库两表连接四种方法

原文:https://www.cnblogs.com/Somuns/p/9160355.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!