2010-08-16 456 views
2

我有,我想穿越加入他們更多的表,我要顯示的每個表這樣的領域:SQL交叉聯接查詢

tb1.filed1 tb1.filed2 tb2.filed1 .....

我該怎麼辦?我怎樣才能選擇字段與細節,如表的名稱。

感謝....

+0

對不起 - 我只是不明白你真的在問什麼.....你能告訴我們兩個表的例子,你在找什麼輸出? ?也許這會對這個問題提出一些建議。...... – 2010-08-16 13:46:42

+0

請重新說明...正在詢問結果中顯示的連接或字段名? – Bobby 2010-08-16 13:46:47

回答

1

使用別名來給出一個有意義的描述......例如

select 
    tb1.field1 as "Order ID", 
    tb1.field2 as "Order Date", 
    tb2.field1 as "Product ID" 
    -- ,etc  
from Orders tb1 
inner join OrderProducts tb2 on 
    tb2.OrderID = tb1.OrderID and 
    tb1.OrderID = @OrderID 
+0

@Nix謝謝忘了所有關於格式化......星期一...;) – 2010-08-16 14:15:55

+0

supose,我不知道每個table.I只知道表的名稱的字段的名稱。 – Farna 2010-08-16 14:38:41

+0

您應該能夠生成別名。我假設SQL Server(不知道其他地方的等價物),但下面的查詢會得到'訂單'表中的所有列: select * from sys.columns where object_id in(select object_id from sys.tables where name ='orders') 你可以看到你如何從返回的名字中建立一個查詢。 – 2010-08-16 15:10:17

4

最簡單的方法是使用列的別名,以同樣的方式,你想給它另名稱:

Select 
    tb1.filed1 as 'tb1.filed1', 
    tb1.filed2 as 'tb1.filed2', ... //continue for all your coumns 
From table1 tb1 
Inner Join table2 tb2 on [your criteria] 

但是,我會建議您使用更多的描述性名稱。也許類似

Select 
    tb1.filed1 as 'RawInitialFiledDate', 
    tb1.filed2 as 'RawReFileDate', 
    tb2.filed1 as 'ConfirmedInitialFiledDate', 
    tb2.filed2 as 'ConfirmedReFileDate' 
from table1 tb1 
Inner join table2 tb2...