StackTc 2018-01-25 03:06 采纳率: 90.9%
浏览 1541
已采纳

oracle主表2个字段动态关联从表问题

动态使用主表中2个字段关联从表达 objid

表A(主) ida,idb,type
表B(从) id,email

实际场景入下:
现在表A有2个字段ida,idb,他们分别关联表B的id,相当于一个发信。
如果type = 1,那么就使用ida关联表B查询到B的信息发送给B,
如果type = 2,那么就使用idb关联表B查询到B的信息发送给B。

本人谢了一段理想化的sql如下:

select decode(type,'1',a.ida,'2',a.idb,'默认') xxid ,a.*,b.* from a
left join b on a.xxid=b.objid

想法是根据type动态生成一个id去关联从表的id,但是执行失败。
有没有小伙伴能解决这个问题? 查询结果需要2个表的所有字段

select decode(type,'1',a.ida,'2',a.idb,'默认') xxid ,a.*,b.* from a
left join b on a.xxid=b.objid and a.type = 1
left join b on a.xxid=b.objid and a.type = 2
这种sql就不用写了,感觉太冗余。

  • 写回答

1条回答 默认 最新

  • sinat_41641294 2018-01-25 03:18
    关注

    不谢

     select a,*,b.* from a,b where decode(a.type,'1',a.ida,'2',a.idb,'默认') = b.objid(+);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求小游戏炸弹人中关于敌人的C++代码
  • ¥15 拿到这个服务器最高权限有偿
  • ¥50 来个抓app跳转支付宝转链接的
  • ¥15 remotes安装提示没有description文件
  • ¥15 AttributeError: 'NoneType' object has no attribute 'drop_duplicates'报错
  • ¥15 以下代码,运行结果报错
  • ¥15 Vivado仿真数据出错
  • ¥15 银河麒麟不支持vant等前端框架怎么办?
  • ¥15 vue3的子组件在父页面调用不显示不生效问题
  • ¥15 cadence PEX