使用两个外部联接时结果不正确

时间:2014-12-16 19:14:07

标签: sql oracle join outer-join

不知何故,使用双左外连接的记录比原始p表多10倍。 (左连接b)左连接C的正确语法是什么?

这是我到目前为止所做的:

SELECT COUNT(*)
FROM p
LEFT OUTER JOIN rate ON p.nip = rate.nip
LEFT OUTER JOIN n ON p.pin = n.pin

更新

是否可以使用列连接?

SELECT COUNT(*)
FROM p
LEFT OUTER JOIN rate ON p.nip = rate.nip
LEFT OUTER JOIN n ON p.pin = n.pin and p.col2 = n.col2;

1 个答案:

答案 0 :(得分:3)

该语法看起来是正确的。

问题可能是,对于给定的rate,每p条记录有多个npi条记录,或者每条n条记录有多条p条记录{1}}记录给定的pin或两者的组合。在这种情况下,数据库假定显示所有组合,即使这意味着在p表中复制记录。

通过向连接添加其他条件表达式来修复它,以便只有附加表中的记录记录符合条件。