SQL中left join, right join有什么区别?
来源:互联网 发布:明朝朝鲜知乎 编辑:程序博客网 时间:2024/05/18 15:03
left join是以左表为准的.
左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
PS:right join表理解相同
官方的解释下:
inner join(等值连接):只返回两个表中联结字段相等的行;
left join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录;
right join(右联接):返回包括右表中的所有记录和左表中联结字段相等的记录。
比如我们有xs、cj两个表
xs表 cj表
--------------- ----------------------
id name id score
1 张三 1 96
2 李四 2 80
3 86
Sql代码
SELECT * FROM `xs` INNER JOIN `cj` ON xs.id = cj.id
SELECT * FROM `xs` INNER JOIN `cj` ON xs.id = cj.id
返回
------------------------
id name id score
1 张三 1 96
2 李四 2 80
-----------------------
Sql代码
SELECT * FROM `xs` LEFT JOIN `cj` ON xs.id = cj.id
SELECT * FROM `xs` LEFT JOIN `cj` ON xs.id = cj.id
返回
------------------------
id name id score
1 张三 1 96
2 李四 2 80
-----------------------
Sql代码
SELECT * FROM `xs` RIGHT JOIN `cj` ON xs.id = cj.id
SELECT * FROM `xs` RIGHT JOIN `cj` ON xs.id = cj.id
返回
id name id score
1 张三 1 96
2 李四 2 80
NULL NULL 3 86
追问:
left,right 代码输入完成之后结果没有什么不同么?我看你这三个代码输入之后表格结果都是一样的。从表格中看不代码之间的区别?
回答:
你看这个,上面首先说了,如果左表有多余的项的化右表就会用NULL表示
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
--------------------------------------------
1.left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
right 的结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
- SQL中left join, right join有什么区别?
- left,right,inner join有什么区别?
- SQL中的inner join和left join、right join有什么区别
- sql中left join、right join、inner join的区别
- sql 中left join,right join,inner join区别
- sql中 join 、left join、right join 的区别
- SQL中left join,right join,inner join的区别
- sql中left join、right join、inner join区别
- SQL中inner join,left join,right join的区别
- SQL中LEFT JOIN、Inner Join、Right Join、Left Outer Join、full join区别
- sql中join、left join、left outer join、right join 的区别
- SQL中cross join,left join,right join ,full join,inner join 的区别
- SQL中cross join,left join,right join ,full join,inner join 的区别
- SQL中cross join,left join,right join ,full join,inner join 的区别
- SQL中cross join,left join,right join ,full join,inner join 的区别
- join联接查询--SQL中 inner join、 left join 、right join、 outer join之间的区别
- sql语句中inner join,left join,right join,full join,cross join之间的区别
- SQL中left join ,right join ,innerjoin 区别
- 第五周——分数类的雏形
- Opentext Cordys REST Gateway用户向导
- 告别程序员生涯,一点感慨,与诸君共勉(转CSDN)
- 基于c++的builder模式初探。
- writetofile(保存自定义目录下不成功)
- SQL中left join, right join有什么区别?
- Wishbone总线快速了解
- 个人搜索记录
- 小谈液晶LED显示及FSMC
- 【数据结构】哈希表
- NSUndoManager的一点学习记录
- 虚拟机基准测试工具
- hdu1231 最大连续子序列
- Oracle 创建用户、修改用户信息、为用户分配权限、为用户分配表空间配额、删除用户