关于sql中的一些易错点,外连接内连接的用法

(+)内连外联用法

1.首先大家知道

select * from a,b 这是个左外连接

2.其次有个地方很多人也知道

select * from a,b where a.hh =b.hh 这时候其实是个内连接

3.有趣的来了

select * from a,b where a.hh =b.hh(+) 这时候加了where条件,但是由于这个(+),其实是个左外连接,(+)在哪一边,哪边就是个副表,另一边是主表,此时还意味着副表是空也没关系哦,主表有就行,所以不要一看where条件不满足,就以为查不到结果

4.麻烦的来了

select * from  a,b where a.hh = b.hh(+)  and a.gg = b.gg,哇,一会有(+),一会没有,此时没有的就是个普通条件,要被满足才能查!但是大局已定,这是个左外连接了

update两个表关联

update (select a.DELAY_DAYS DELAY_DAYS, b.tn_confirm tn_confirm
          from tbfunduniprofitrule a
         inner join tbfundproduct b
            on a.prd_code = b.prd_code
           where a.prd_code = 'SLU148') t
   set t.DELAY_DAYS = t.DELAY_DAYS - t.tn_confirm


update tbfunduniprofitrule a
   set a.DELAY_DAYS =
       (select a.DELAY_DAYS - b.tn_confirm
          from tbfundproduct b
         where a.prd_code = b.prd_code)
 where a.prd_code in ('SLU148', 'SLV896', 'SNU908');

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值