检查两个表的值?

时间:2014-03-30 07:54:10

标签: oracle oracle10g

我有两张桌子 table1包含客户及其信息的列表,每个客户都有一个客户ID table2包含来自所有with的请求列表和每个请求的客户ID作为外键

我想检查有请求但不是

的客户

PLZ如何才能在两个查询之间实现逻辑?

谢谢

1 个答案:

答案 0 :(得分:1)

您有两个表,第一个每个客户有一行,另一个每个客户有0到多行。因此,您需要两种技术:一种是将每个客户的第二个表减少到一行,另一种是将结果集连接到第一个表。这些技术分别是聚合子查询和外连接。

select c.customer_id
       , nvl(r.req_count, 0) as no_of_reqs
from   customer c
       left outer join ( select customer_id
                                , count(*)  as req_count
                         from   customer_req 
                         group by customer_id ) r
        on c.customer_id = r.customer_id