与内部连接的查询:左外连接返回更少的行
Select
O.ORDER_KEY, O.ORDER_SOURCE,
-------, ---
FROM
Table_1, Table_2, Table_3
where
TABLE_1.SK = TABLE_2.SK AND TABLE_2.SK = TABLE_3.SK and many more;
上述查询将返回各地的10000行。
我想添加另一个表,但同时我不想丢失来自table_2的订单。为了达到这个目的,我使用了left_outer_join:
Select
O.ORDER_KEY, NVL(O.ORDER_SOURCE, WROA.ORDER_SOURCE) AS ORDER_SOURCE,
-------, ---
FROM
Table_1, Table_2, Table_3, Table_4
where
TABLE_1.SK = TABLE_2.SK AND TABLE_2.SK = TABLE_3.SK AND
TABLE_2.ORDER = TABLE_4.ORDER(+);
上面的查询返回200行。
为什么它不返回10000行?我错过了什么?如何在左外连接上添加一个条件来影响多行?
有加入旧语法,但此查询是无稽之谈。什么是TABLE_2_ORDER?没有这样的桌子。什么是'还有更多';?它可以有很多'(+)首先我建议重新适应正确的连接语法。然后发布整个查询进行分析。这是很少说什么 – Kacper
非常确定这是一个正确的加入。包含所有table4_order记录,并且只包含table_2_order中匹配的记录。 – xQbert
“=”被认为是内部连接,最后加上“(+)”是外部连接。对? –