您的位置:首页 > 数据库

sql 条件加在 left join 与where后面的区别

2012-08-28 15:32 246 查看
做项目时遇到一问题,前台页面查询数据查不到,后台能查询到数据,百思不得其解,查询的sql如下:

select * from xxx poi

left join yyy css on poi.ORG_ID = css.ORG_ID

where 1=1 and( (css.RPT_YEAR = 2009 ) or (css.RPT_YEAR is null ) )

本来是想以poi这张表为准,把所有满足条件的数据的数据查询出来,但是理解有问题,本意是想利用左外连接的方式查询出css表中的空行,但事得其反,条件加错地方了,修改如下:

select * from xxx poi

left join yyy css on poi.ORG_ID = css.ORG_ID and css.RPT_YEAR = 2009

where 1=1

现在终于明白为什么有些条件是加在left join 后,有些加在where 后,两个根本不是一个意思……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: