Olá!
Tenho o seguinte cenário, e realmente achei muito estranho, não sei se é um BUG ou se tem uma explicação.
CREATE TABLE X (X NUMERIC(10) NOT NULL PRIMARY KEY);
INSERT INTO X VALUES (1);
COMMIT;
CREATE TABLE Y (Y NUMERIC(10) NOT NULL PRIMARY KEY);
INSERT INTO Y VALUES (1);
COMMIT;
CREATE TABLE Z (Z NUMERIC(10) NOT NULL PRIMARY KEY);
INSERT INTO Z VALUES (1);
COMMIT;
SELECT *
FROM X A
LEFT OUTER JOIN Y B ON A.X = B.Y
LEFT OUTER JOIN Z C ON WHATEVER.B.Y = C.Z
Repare no LEFT OUTER JOIN Z C ON WHATEVER.B.Y = C.Z, substitua o WHATEVER por qualquer coisa que irá funcionar.
Intrigante não ? Alguém sabe explicar essa ?
Testei isso no Oracle 11g R2…