2017-01-04 3 views
0

Можно ли получить доступ к полям по производным таблицам?SQL - Обмен полями между производными таблицами

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

Да, вы получаете сообщение об ошибке в коде выше? –

+0

Да, это так. Или вы можете использовать Common Table Expressions (CTE) тоже. – JotaPardo

+1

Я не знаю, откуда берутся комментарии «да». 'T2.COL2A' находится вне области действия в ANSI SQL и каждой базе данных, с которой я знаком. Есть более эффективные способы написания запроса, но конкретное выражение там не допускается. –

ответ

2

Вы бы поставить выражения с помощью нескольких столбцов в предложении SELECT:

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; 

Там нет необходимости для производных таблиц на всех.

 Смежные вопросы

  • Нет связанных вопросов^_^