left join on、where后面的条件的区别
2013-12-23 11:33
423 查看
left join on 即左连接,把left join左边的表的记录全部找出来。
select a.* from a left join b on a.id=b.id where b.end_date=to_date('99991231','yyyymmdd')
写在不同的位置,得到的结果可能会不同,这一点要注意。
两个表关联条件写在on后面,限制条件写在where后面。-这句话时错误的!
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID WHERE B.OTHERKEY=XXXX
与
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID AND B.OTHERKEY=XXXX
是不一样的
后者相当于(出来的结果一样)
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID WHERE B.OTHERKEY=XXXX OR B.OTHERKEY IS NULL
进行左连接时,就有涉及到主表、辅表,这时主表条件写在WHERE之后,辅表条件写在ON后面!!!
select a.* from a left join b on a.id=b.id where b.end_date=to_date('99991231','yyyymmdd')
写在不同的位置,得到的结果可能会不同,这一点要注意。
两个表关联条件写在on后面,限制条件写在where后面。-这句话时错误的!
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID WHERE B.OTHERKEY=XXXX
与
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID AND B.OTHERKEY=XXXX
是不一样的
后者相当于(出来的结果一样)
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID WHERE B.OTHERKEY=XXXX OR B.OTHERKEY IS NULL
进行左连接时,就有涉及到主表、辅表,这时主表条件写在WHERE之后,辅表条件写在ON后面!!!
相关文章推荐
- 《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分)
- maven环境快速搭建
- cocos2dx常见动作
- 2.6.37的setup_arch
- JS中的异常处理方法分享
- 第三部分:Android 应用程序接口指南---第三节:应用程序资源---第一章 资源提供
- php 遍历文件夹
- python定时采集摄像头图像上传ftp服务器功能实现
- Linux内核ARM构架中原子变量的底层实现研究
- 16C2550串口芯片在at91sam9263板上的linux驱动移植 .
- 排列组合算法
- [z]兼容IE6的相对于浏览器窗口定位
- 关于javascript的typeof
- 解读startx
- 机顶盒死机抓堆栈
- Bresenham画圆算法
- 内存机制的建立
- iOS arc设置
- oracle 触发器详解
- 图片缩略图