seal_li 2018-03-24 09:50 采纳率: 100%
浏览 1537
已采纳

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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?