sql >> Database >  >> RDS >> Oracle

Waarom lost Oracle SQL op mysterieuze wijze ambiguïteit op in één join en niet in andere?

Voor de derde query retourneert Oracle 10g field3 uit de tweede TestTable1 (alias TestTable1_2). Dit lijkt een bug te zijn, die lijkt te zijn opgelost in 11g.

Testcase:

INSERT INTO TestTable1 VALUES (1,2,3,NULL);
INSERT INTO TestTable1 VALUES (2,5,6,1);
INSERT INTO TestTable2 VALUES (5,6,7);
INSERT INTO TestTable2 VALUES (2,20,30);

SELECT field3
FROM TestTable1
join TestTable2 ON TestTable1.field1 = TestTable2.field1
left join TestTable1 TestTable1_2 ON TestTable1.self_ref = TestTable1_2.id;

FIELD3
======
3
(null)

SELECT TestTable1.field3, TestTable2.field3, TestTable1_2.field3
FROM TestTable1
join TestTable2 ON TestTable1.field1 = TestTable2.field1
left join TestTable1 TestTable1_2 ON TestTable1.self_ref = TestTable1_2.id;

FIELD3 FIELD3_1 FIELD3_2
====== ======== ========
6      7        3
3      30       (null)



  1. Hoe gegevens in een Hive(0.13.1)-tabel in te voegen?

  2. MySQLSyntaxErrorException in de buurt van ? bij het uitvoeren van PreparedStatement

  3. Hoe controleer je of een MySQL-verbinding open is in Python?

  4. Haal de naam van de aanroepende procedure of functie op in Oracle PL/SQL