科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道左连接问题

左连接问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

左连接问题

作者:csdn 来源:csdn 2009年12月22日

关键字: ORACLE 问答

  • 评论
  • 分享微博
  • 分享邮件

左连接问题

有3张表,A与B是主子表,通过partcode相连接,C表通过cgid与B表左连接,可是A表怎么办呢?
例如:
A表
aid    partcode        status

1        001            70

2        002            10

3        003            50

B表

bid    partcode        cgid        price

1      001              b001        2.2

2      002              b002        3.0

3      003              b003        1.0
C表

cid    cgid          qty   

1      b001          20

2      b002          10

3      b003          30

4      b004          40

想实现的结果为

cgid        price*qty

b001        44(因为status='70')

b002        0 (因为status != '70')

b003        0 (因为status != '70')

b004        0 (因为status != '70')

 

 

select b.cgid , b.price * c.qty from a , b, c where a.partcode = b.partcode and b.cgid = c.cgid and a.status = '70'
union all
select b.cgid , 0  from a , b, c where a.partcode = b.partcode and b.cgid = c.cgid and a.status <> '70'

 

select c.cgid,nvl(b.price*c.qty,0)
from a join b
  on a.partcode=b.partcode and a.status=70
  right join c on b.cgid=c.cgid
 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章