关于left join on 的问题

顾涛_real 2016-09-22 02:42:27
select * from a left join b on a.id=b.uid where a.id>2

select * from a left join b on a.id=b.uid and a.id>2
有什么区别?
求大神指点
...全文
540 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ma100 2016-10-17
  • 打赏
  • 举报
回复
此例从结果上看没区别 A left join B on C where D 执行步骤 1. 计算AB的笛卡尔积 2. 筛选出符合C的 3. 给B补NULL 4. 筛选出符合D的
dwh0571 2016-10-13
  • 打赏
  • 举报
回复
select * from a left join b on a.id=b.uid where a.id>2 -- a.id>2 作用在a表中的数据,只会显示满足条件的记录 select * from a left join b on a.id=b.uid and a.id>2 -- a.id>2 作用是b表中的数据,查询出来的还是a的全部数据因为是left,只不过b表中不满足的数据没有了
bns74 2016-10-07
  • 打赏
  • 举报
回复
select * from a left join b on a.id=b.uid where a.id>2 select * from a left join b on a.id=b.uid and a.id>2 这两句a左连接b时是没有区别的,反过来则有很大区别了。 ——远离 深圳市前海博纳斯科技有限公司 这家毫无信用欺诈工资的垃圾公司!
中国风 2016-09-26
  • 打赏
  • 举报
回复
有区别 --记录数 第1显示a表id>2的记录 第2显示a表所有记录
九月茅桃 2016-09-26
  • 打赏
  • 举报
回复
select * from a left join b on a.id=b.uid where a.id>2 和 select * from a left join b on a.id=b.uid and a.id>2 有什么区别? 有区别的,写在where后面会少很多记录的。
Richard123m 2016-09-23
  • 打赏
  • 举报
回复
做点数据,运行一遍
rucypli 2016-09-23
  • 打赏
  • 举报
回复
参考这个sql执行顺序 http://www.cnblogs.com/rollenholt/p/3776923.html
ACMAIN_CHM 2016-09-22
  • 打赏
  • 举报
回复
无区别 .

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧