2 qq 28872199 qq_28872199 于 2016.09.12 16:44 提问

为什么我这个用left join ,join, right join效果相同?

查出来的结果没有一丁掉变化,去百度看了很多还是不明白,求大神解答图片说明

10个回答

qw0907
qw0907   2016.09.12 17:04

这与 你两个表中的资料有关。
你删除 某个表中的一笔资料,另一个表不动,
你就可以看到 不同了。

wyg_blog
wyg_blog   2016.09.12 17:10

是不是两个表的内容都是匹配的,所以左右连接查出来结果都一样。
试试让一个表少一行数据。

zhaihonghonghzh
zhaihonghonghzh   2016.09.12 17:10

你把数据修改下 让它们有些不能匹配对 最好的验证方法是 把一些字段的值置空

qq_23126581
qq_23126581   Rxr 2016.09.12 17:20

我不知道这样说,对不对啊,不对请见谅,我也是新手,比如有两张表,a表,和b表,a表50条数据,b表有100数据,两个表匹配到的是50条数据,用left join
是以a表为主,你查询的时候以a表信息为主,显示50条数据,还有50条 数据都是null。

huxin008
huxin008   2016.09.12 17:51

left 就是以左表为主,匹配到的到的就匹配。匹配不到的右边会显示null,左表是全部的,右边不一定,right join刚好想反

jerry10_yang
jerry10_yang   2016.09.12 19:23

这是因为你的两个表中的元素完全一一对应,比如说表A{1,2,3} 表B{a,b,c} (1与a,2与b,3与c是对应关系),那么不管是left join还是right join 得到的结果的肯定是一样的

kings_zj
kings_zj   2016.09.13 15:44

left join 和 right join 是左连接和右连接。用oracle支持的语法就是 xxx(+)=yyy 或者 xxx=yyy(+) 就很明显看出来了。左连接是指查询到总记录数以左表总记录为准(只多不少),右表的数据根据条件和左表匹配,有的话就匹在一起,没有的话就null在那里。右连接反之。
比如:
A表 Id name
1 A11
2 A222

B表 Id name
1 B1111
1 B2222
3 B3333
A表Id左连接B表Id,查出来就是
A1 A11 B1 B1111
A1 A11 B2 B2222
A2 A22 null null

右连接反之
A1 A11 B1 B111
A1 A11 B1 B222
null null B3 B3333

cookidog
cookidog   2016.09.13 20:39

inner join是交集,full join是并集,left join 是左表为基础,right join 是右表为基础

meng20166
meng20166   Rxr 2016.09.14 14:51

这个查询结果是相同的,只是查询顺序不同,left join的话左表是主表,right join 右表是主标,join是并集。sql纯在这些方法是为了提高查询效率,一般数据量大的当主表效率会更高,数据量少的话是看不出来的,如果数据库里有上百万条数据你就会看到同样都是sql,查询结果相同,但效率可以提高好几倍,所以sql不能只看结果,过程也是很重要的

beyon2008
beyon2008   2016.10.19 09:27

如果left join ,join, right join结果相同,只能说明一点,通过on条件关联上了完全的记录

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数据库左右链接
Left join , Right Join, Inner Join 的相关内容!Left join , Right Join, Inner Join 的相关内容!
SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解
相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这三者的区别,希望对大家能带来帮助。 首先,我们创建示例数据库和表。同时也要明确一个概念:A INNER/LEFT/RIGHT JOIN B操作中,A表被称为左表,B表被称为右表。 创建示例数据库school,在数据库
(Left join , Right Join, Inner Join)用法详解
(Left join , Right Join, Inner Join)用法详解,对Left join , Right Join, Inner Join完全掌握,由浅入深,真正领悟。
SQL语句left join/right join/inner join 的用法比较
SQL语句left join/right join/inner join 的用法比较 SQL语句left join/right join/inner join 的用法比较
数据库表的连接(Left join , Right Join, Inner Join)用法详解
Left Join, Inner Join 的相关内容,非常实用,对于理解原理和具体应用都很有帮助! left join 是left outer join的简写,left join默认是outer属性的。  Inner Join  Inner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。这个和用select查询多表是一样的效果,所以很少用到;  ou
left join加上where条件的困惑,(left join 无用 / 无效 )
left join的困惑:一旦加上where条件,则显示的结果等于inner join 将where 换成 and   用where 是先连接然后再筛选    用and 是先筛选再连接 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。       在使用left jion时,on和where条件的区别如下: 1、 o
SQL Server数据库之left join 、right join 和 inner join 的区别
转自:http://blog.csdn.net/yy312232557/article/details/6941171  昨天的学习笔记中写到了关于union 和 union all 的区别 今天来研究一下数据库left join 、right join 和 inner join 这三者之间的区别 在网上看别人的写过的源代码,绝大多数的应用系统开发,数据库都会有很多的各种各样的join,那些
sql中left join和right join混用
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 如上所言,我们只做一下left join的实验,right join和left join 类似
mysql的left join 和right join和join的区别
存在两张表,数据如下: mysql> select * from a; +----+------+ | id | name | +----+------+ |  1 | aaa  | |  2 | bbb  | |  3 | ccc  | +----+------+ mysql> select * from b; +----+------+ | id |
关于sql server中的 jion,inner join, left join ,left outer join, right join,right outer join 的几点使用心得
平时我们做关联,一般都是2~3张表,不太关注这样繁杂的写法,那今天咱们就看看这些写法吧 对将要说的这三种,先说一下要介绍的要点:on后面的条件可以放几个?什么时候结合着where条件一起使用? 大家可以先看看这个帖子,帖子的名字是:sqlserver left join的on中如何添加多个查询条件?? 链接:http://bbs.csdn.net/topics/270023422 开始咱们