2013-03-04 55 views
0

我將4個表連接在一起。命名/引用連接表

我以後如何參考它?我可以或不需要命名此表嗎?

這是一個簡單的內部連接:

select * 
from table1 as 1 
inner join table2 as 2 on x=y 
inner join table3 as 3 on a=y 
inner join table4 as 3 on z=a 

現在,當我在代碼中引用它以後,我該怎麼做呢?

我試圖把所有的東西(從table1到z = a)放在括號裏,並把「as tablename」放在它後面 - 它沒有用。

任何提示?

回答

1

一旦你表的別名提供一個名稱,你指的是別名在您的加入,以及在你的SELECT列表:

select t1.x, 
    t2.y, 
    t3.y, 
    t4.a 
from table1 as t1 
inner join table2 as t2 
    on t1.x = t2.y 
inner join table3 as t3 
    on t1.a = t3.y 
inner join table4 as t4 
    on t1.z = t4.a 

你會看到,當我提供的表別名上方我提供了一個以字母而不是數字開頭的名字。

+0

我明白了,但是當我現在引用t3中的某些內容來過濾某些內容時,我是否仍然會從每張表中將每個列都加入到一起?還是隻會返回我提到的特定表的行/列? – msa 2013-03-04 12:17:07

+0

@msa如果您使用'WHERE'子句過濾來自't3'的數據,那麼您只會得到匹配的行。 – Taryn 2013-03-04 12:26:01

+0

是 - 但是這一行是否包含我加入的所有表的列,或只包含屬於t3的列? – msa 2013-03-04 12:34:24