2010-09-20 7 views

risposta

7

Non è possibile denominare direttamente il risultato di un join. Una possibilità è quella di utilizzare una sottoquery:

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

Un'altra opzione è quella di factoring subquery:

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 
8

Non è possibile utilizzare gli alias di nominare il "intero" si uniscono, si può, tuttavia, mettere alias su singole tabelle del join:

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

nella proiezione, si dovrà utilizzare l'alias della tabella, che definisce la colonna id che si sta per select.

Problemi correlati