Как использовать «как», чтобы установить псевдоним для объединенных таблиц в Oracle 10 - PullRequest
7 голосов
/ 21 сентября 2010

Я написал это, и это неправильный синтаксис, помогите мне исправить это, я хочу, чтобы 'T' было псевдонимом результата двух внутренних объединений.

select T.id 
from table1 
  inner join table2 on table1.x = table2.y  
  inner join table3 on table3.z = table1.w as T;

Ответы [ 2 ]

9 голосов
/ 21 сентября 2010

Вы не можете использовать псевдонимы для имени «всего» объединения, однако вы можете поместить псевдонимы в отдельные таблицы объединения:

select t1.id
from table1 t1
   inner join table2 t2 on t1.x = t2.y
   inner join table3 t3 on t3.z = t1.w

В проекции вам нужно будет использовать псевдоним таблицы, который определяет столбец id, к которому вы собираетесь select.

7 голосов
/ 21 сентября 2010

Вы не можете напрямую назвать результат объединения.Одним из вариантов является использование подзапроса:

select T.id
from (
  select *
  from table1
  inner join table2 on table1.x = table2.y
  inner join table3 on table3.z = table1.w
) T

Другой вариант - факторинг подзапроса:

with T as (
  select *
  from table1
  inner join table2 on table1.x = table2.y
  inner join table3 on table3.z = table1.w
)
select T.id
from T
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...