oracle标准语法外连接和子查询外连接,而不采用ANSI连接

本文介绍了Oracle数据库中外连接查询的错误与正确写法,强调了外连接查询和子查询外连接的区别。在正确示例中展示了如何使用外连接符号(+)实现左连接,并解释了子查询在外连接中的作用,即先过滤再连接,可能导致部分产品记录无法匹配到子查询结果。
摘要由CSDN通过智能技术生成
不使用ANSI连接,如inner join、left join、right join、full outer join,而使用(+)来表示外连接

      错误的写法:
      select a.*, b.goods_title from iw_account_log a left join beyond_trade_base b on a.TRANS_OUT_ORDER_NO = b.trade_no
      where a.trans_code = '6003' and a.trans_account = #transacnt:varchar# and a.trans_dt > to_date(...)

      正确的写法:
      select a.*, b.goods_title from iw_account_log a, beyond_trade_base b
      where a.TRANS_OUT_ORDER_NO = b.trade_no(+) and a.trans_code = '6003'
        and a.trans_account = #transacnt:varchar# and a.trans_dt > to_date(...)

+ //这是左连接,也就是左边连过来的,如果碰到了右边没有,那么他只好连接一个空 

我们在使用连接查询的时候,要明白子查询外连接和外连接查询的区别。

1、外连接

    select PROM_PRODUCT.ID, PROM_PRODUCT.GMT_CREATE, PROM_PRODUCT.GMT_MODIFIED, PROM_PRODUCT.PROMOTION_ID, PROM_PRODUCT.PRODUCT_ID, PROM_PRODUCT.PRICE_TYPE,
        PROM_PRODUCT.PRICE, PROM_PRODUCT.DISCOUNT,
        PROM_PRODUCT.DISCOUNT_TEMPLATE_ID, PROM_PRODUCT.STOCK, PROM_PRODUCT.PURCHASE_LIMIT_NUM_MAX, PROM_PRODUCT.PURCHASE_LIMIT_NUM_MIN, PROM_PRODUCT.STATUS,
        PROM_PRODUCT.MEMBER_SEQ, PROM_PRODUCT.ADMIN_MEMBER_SEQ, PROM_PRODUCT.IS_NEED_FREEZE_FORM, PROM_PRODUCT.IS_NEED_FREEZE_SHELF, PROM_PRODUCT.PP_START_DATE,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值