sql小样例

问题:目前有主表main,三个子表table1,table2,table3

通过外键main_id一对一关联,main表的一个字段type,type=1,表示类型为子表1,type=2表示类型为子表2,type=3表示类型为子表3

需要读取所有主表的记录,显示的属性为type和name(分别为子表的属性)

with A as (select  main_id,max(name) name,max(type) type  from table1  group by main_id),

        B as (select  main_id,max(name) name,max(type) type  from table2  group by main_id),

        C as (select  main_id,max(name) name,max(type) type  from table3  group by main_id)

select  decode(M.type,1,A.name,2,B.name,3,C.name)  name,

             decode(M.type,1,A.type,2,B.type,3,C.type)  type

from  main M, A, B

where  M.main_id = A.main_id(+)  and  M.main_id = B.main_id(+)  and   M.main_id = C.main_id(+);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技颠覆未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值