2017-01-04 2 views
0

Kann auf Felder in abgeleiteten Tabellen zugegriffen werden?SQL - Freigeben von Feldern zwischen abgeleiteten Tabellen

SELECT * 
FROM (SELECT ID, COL1A FROM Table1) T1 
     JOIN (SELECT ID, COL2A FROM Table2) T2 
      ON T1.ID = T2.ID 
     JOIN (SELECT ID, (COL3A + T2.COL2A) AS SUM FROM Table3) T3 
      ON T1.ID = T3.ID 
+0

Ja, erhalten Sie einen Fehler im obigen Code? –

+0

Ja, ist es. Oder Sie können auch Common Table Expressions (CTE) verwenden. – JotaPardo

+1

Ich weiß nicht wo die "Ja" Kommentare herkommen. 'T2.COL2A' ist in ANSI SQL und jeder mir bekannten Datenbank nicht enthalten. Es gibt bessere Möglichkeiten, die Abfrage zu schreiben, aber der spezifische Ausdruck ist dort nicht erlaubt. –

Antwort

2

Sie würden die Ausdrücke mit mehreren Spalten in der SELECT Klausel setzen:

SELECT t1.ID, t1.COL1A, t2.COL2A, (t3.COL3A + t2.COL2A) as sum 
FROM Table1 T1 JOIN 
    Table2 T2 
    ON T1.ID = T2.ID JOIN 
    Table3 T3 
    ON T1.ID = T3.ID; 

Es überhaupt keine Notwendigkeit für abgeleitete Tabellen ist.

Verwandte Themen