join中on和where区别
时间:2011-11-12
来源:互联网
http://topic.csdn.net/u/20111112/13/d57807be-ae58-4fdd-8477-a6b559103d23.html
遇到了left join中on和where的区别问题,而且我也在这迷惑了.
select a.*,b.result from t1 a
left join t2 b on a.uId=b.uId and a.class='1'
-------
select a.*,b.result from t1 a
left join t2 b on a.uId=b.uId where a.class='1'
我上网查了一下,说法各不相同.
都说inner join中on和where是效果一样的,但是和其他join情况效果不一样
能不能给个比较准确的说法,说明inner join和outer join情况下on和where的筛选过程
囧,最多只能给100分.
作者: xiaolinyouni 发布时间: 2011-11-12
b.result
from t1 a
left join t2 b on a.uId=b.uId and a.class='1'
-------t1表全显示
select a.*,b.result from t1 a
left join t2 b on a.uId=b.uId where a.class='1'
t1表显示Class=1的全部数据
要限制T1表的结果集,可以在where后果加
在 left join后面加,只是根据条件显示T2是否null
作者: roy_88 发布时间: 2011-11-12
LEFT JOIN 或 LEFT OUTER JOIN。
左向外部联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某一行在右表中没有匹配行,则在关联的结果集行中,来自右表的所有选择列表列均为空值。
RIGHT JOIN 或 RIGHT OUTER JOIN
右向外部联接是左向外部联接的反向联接。将返回右表的所有行。如果右表的某一行在左表中没有匹配行,则将为左表返回空值。
FULL JOIN 或 FULL OUTER JOIN
完整外部联接将返回左表和右表中的所有行。当某一行在另一个表中没有匹配行时,另一个表的选择列表列将包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
作者: roy_88 发布时间: 2011-11-12
作者: myselfff 发布时间: 2011-11-12
select a.*,b.result from t1 a left join t2 b on 1=0
SQL code
select a.*,b.result from t1 a left join t2 b on a.uId=1 and a.uId=b.uId
楼主在原贴这样查看结果集,left join t2...条件是限制t2表的列用不用显示,条件成立时显示,不成立时显示null,不影响t1表的显示
作者: roy_88 发布时间: 2011-11-12
如果是 left join right join 的话,楼主要多注意些:
看看你left join后的表是先筛选还是和主表连接后再进行筛选,一个逻辑的先后顺序问题。
你可以去看看SQL查询的执行顺序就了解了。
作者: AcHerat 发布时间: 2011-11-12
直接是join的话ON后的条件写到where后边是没错的。
如果是 left join right join 的话,楼主要多注意些:
看看你left join后的表是先筛选还是和主表连接后再进行筛选,一个逻辑的先后顺序问题。
你可以去看看SQL查询的执行顺序就了解了。
嗯,R神的回答比较宽泛,可叹我还是理解不能啊.
根据小三的提示我找到如下两篇文章,很不错
T-SQL查询处理执行顺序(一)
T-SQL查询执行顺序(二)
很不错,我先看看,如果我还不明白再回来问各位.
作者: xiaolinyouni 发布时间: 2011-11-12
引用 5 楼 acherat 的回复:
直接是join的话ON后的条件写到where后边是没错的。
如果是 left join right join 的话,楼主要多注意些:
看看你left join后的表是先筛选还是和主表连接后再进行筛选,一个逻辑的先后顺序问题。
你可以去看看SQL查询的执行顺序就了解了。
嗯,R神的回答比较宽泛,可叹我还是理解不能啊.
根据小……
作者: ssp2009 发布时间: 2011-11-12
帮顶,mark下。
作者: tangguangqiang 发布时间: 2011-11-12
和where条件是一样的
left join 和right join 就不一样了
作者: pengxuan 发布时间: 2011-11-12
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28