编写以下代码是为了获取所有父子关系,并希望了解为什么And没有过滤记录但是在哪里。 e.g -
select
s.name,
s.status,
s.start_date_active,
s.end_date_active,
s.salesrep_number,
p.name Parent_name,
p.status Parent_status,
p.start_date_active Parent_start_date_active,
p.end_date_active Parent_end_date_active,
FROM XXX_XX_SALESREPS s
left outer join XXX_XX_SALESREPS p
on s.attribute1 = p.salesrep_id
**and s.attribute1 = '100003916'**
以上查询给出表s中的所有行,不要在'100003916'上过滤它。但是当我使用..
select
s.name,
s.status,
s.start_date_active,
s.end_date_active,
s.salesrep_number,
p.name Parent_name,
p.status Parent_status,
p.start_date_active Parent_start_date_active,
p.end_date_active Parent_end_date_active,
FROM XXX_XX_SALESREPS s
left outer join XXX_XX_SALESREPS p
on s.attribute1 = p.salesrep_id
**where s.attribute1 = '100003916'**
这个查询只给我过滤记录。为什么有人可以回答它。提前谢谢。
答案 0 :(得分:1)
在您的第一个案例中,and s.attribute1 = '100003916'
是您加入条件的一部分 - 由于它是left outer join
,因此它不会用作过滤器。