六边形战士夏宁
2018-03-24 09:50
采纳率: 100%
浏览 1.5k

oracle外键多对一查询,多的表进行条件筛选查询一的表

图片说明

如图所示,常见的做法是当表B中的state全部为1时,则在表A维护一个state=1,此时查询的时候只需要查出表A中state=1的所有numA,但是现实情况是出于前后兼容问题,并不允许表A维护state,求解怎样查询

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 红帽01 2018-03-24 15:43
    已采纳

    B表中全部为1,就代表有一个0 就不行。

        SELECT  a.*
        FROM    tableA a
                LEFT OUTER JOIN ( SELECT    Anum
                                  FROM      tableb
                                  WHERE     STATE = 0
                                  GROUP BY  Anum
                                ) b ON a.Anum = b.Anum
        WHERE   b.Anum IS NULL
    
    点赞 打赏 评论

相关推荐 更多相似问题