博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL inner join、left join、right join用法
阅读量:7031 次
发布时间:2019-06-28

本文共 1232 字,大约阅读时间需要 4 分钟。

1.连接运算由两部分构成:连接类型与连接条件

连接类型可分为

INNER JOIN(等值连接)

LEFT  JOIN(左联接) 

RIGHT JOIN (右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录

连接条件可分为

NATURAL   自然连接(去掉重复属性)

ON   连接条件(保留重复属性)

USING 属性名1,属性名2… (保留指定重复属性)

 

2.操作实例

  表A记录如下:

  aID      aNum

   1         a2016001

   2         a2016002

   3         a2016003

   4         a2016004

   5         a2016005

 

  bID       bName

   1          bmumu001

   2          bmumu002

   3          bmumu003

   4          bmumu004

   6          bmumu006

 

 测试如下:

 1.left join

  sql语句如下:

  select * from A left join B on a.aID=b.bID

  结果如下:

 aID        aNum             bID         bNAME

 1           a2016001         1           bmumu001

 2           a2016002         2           bmumu002

 3           a2016003         3           bmumu003

 4           a2016004         4           bmumu004

 5           a2016005        NULL       NULL

   结果说明:

   left join 是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join 是以左表为准的.换句话说,左表(A)的记录将会全部显示出来,

   而右表(B)只会显示符合搜索条件的记录(a.aID=b.bID),B表记录不足的地方均为NULL

 

 2.right join

  sql语句如下:

select * from A right join B on a.aID=b.bID

  结果如下:

 aID        aNum             bID         bNAME

 1           a2016001         1           bmumu001

 2           a2016002         2           bmumu002

 3           a2016003         3           bmumu003

 4           a2016004         4           bmumu004

 NULL       NULL               6           bmumu006

   结果说明:

   仔细观察一下,就会发现和left join的结果刚刚相反, right join 是以B表的记录为基础的,A表记录不足的地方用NULL填充

 

3.inner join

  sql语句如下:

select * from A inner join B on a.aID=b.bID

  结果如下:

 aID        aNum             bID         bNAME

 1           a2016001         1           bmumu001

 2           a2016002         2           bmumu002

 3           a2016003         3           bmumu003

 4           a2016004         4           bmumu004

    结果说明:

    很明显,inner join 只显示了 a.aID=b.bID的记录,这说明inner join 只显示符合条件的记录

  

 

转载于:https://www.cnblogs.com/jilijiu/p/6008792.html

你可能感兴趣的文章
嵌入式系统在工业控制中的应用
查看>>
使用httpclient异步调用WebAPI接口
查看>>
c++ 类的对象与指针
查看>>
SSTI(模板注入)
查看>>
rbac models
查看>>
[2615]传纸条 sdutOJ
查看>>
类图标注的使用范例
查看>>
NumberFormat注解 DateTimeFormat
查看>>
[转载]PV操作简单理解
查看>>
Acm Dima and Lisa的题解
查看>>
深入浅出Tomcat系列
查看>>
从网页提取的关键字
查看>>
位运算符
查看>>
PHP str_replace() 和str_ireplace()函数
查看>>
什么是全栈工程师
查看>>
Html5新特性
查看>>
linux下简易端口扫描器
查看>>
HDU 1205
查看>>
Openstack-L 路由注入方式
查看>>
利用ROS工具从bag文件中提取图片
查看>>