开发者社区> 问答> 正文

为什么第一条SQL后面那个条件不起作用?第二条起作用了

求助,各位能解释下原因吗?为什么第一条SQL后面那个条件不起作用?第二条起作用了
screenshot

展开
收起
吴孟桥 2016-06-14 11:44:24 1985 0
1 条回答
写回答
取消 提交回答
  • 这是因为你第一个语句用的是left join。

    而left join后面的on的条件 AND a.id='000000004ef2f390014ef3024f230015' 只是用于限制 a在和b关联时,用a中的 满足条件的数据和b关联,那么a中 a.id 不等于'000000004ef2f390014ef3024f230015'的仍然会显示出来,只是 b的哪些列 都是null而已。

    要用left join来实现 inner join的效果,可以这么写:

    SELECT a.* FROM auctioncommendity a
    left JOIN auctionbid b
    ON a.id=b.auctioncommendityid
    where a.id='000000004ef2f390014ef3024f230015';

    等价于你写的这个:

    SELECT a.* FROM auctioncommendity a
    INNER JOIN auctionbid b
    ON a.id=b.auctioncommendityid AND a.id='000000004ef2f390014ef3024f230015';
    2019-07-17 19:37:09
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载