Search code examples
sqlderived-table

SQL - Sharing fields between derived tables


Is it possible to access fields across derived tables?

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

Solution

  • You would put the expressions using multiple columns in the SELECT clause:

    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;
    

    There is no need for derived tables at all.