2013-03-25 75 views
0

真的在這裏掙扎,不太明白髮生了什麼。使用MS SQL Server 2012的加入使用多個表格

如果我是運行這段代碼:

USE database 1; 
GO 

SELECT a.ID, b.ID, c.ID, d.ID 
FROM table1 a, table2 b, table3 c, table3 d 
INNER JOIN database2.tablex tx ON a.ID = tx.ID 

它不會出於某種原因。智能感知只顯示列表中的最後一個別名,所以「d」。如果我把剩下的代碼寫出來,它不能綁定syx xxxx列......我該怎麼做?我想從多個表中進行選擇,然後爲所有表應用內部連接(構建DW)。

感謝

+0

你想要一個笛卡兒表1,表2,表3和表4之間的連接,或者您省略了查詢的部分? – 2013-03-25 19:02:19

回答

4

不要混用2款加入的 - 舊的(在WHERE連接條件),而新的(使用JOIN關鍵字)。您的查詢不起作用,因爲只有在FROM最新表可見JOIN

--Doesn't work 
SELECT a.ID, b.ID, c.ID, d.ID 
FROM table1 a, table2 b, table3 c, table3 d 
INNER JOIN database2.tablex tx ON a.ID = tx.ID 

--Works (note - table1 a is the last in "FROM"): 
SELECT a.ID, b.ID, c.ID, d.ID 
FROM table2 b, table3 c, table3 d, table1 a 
INNER JOIN database2.tablex tx ON a.ID = tx.ID ; 

-- Preferred way : 
SELECT a.ID, b.ID, c.ID, d.ID 
FROM table1 a 
INNER JOIN table2 b ON (...) 
INNER JOIN table3 c ON (...) 
INNER JOIN table3 d ON (...) 
INNER JOIN database2.tablex tx ON a.ID = tx.ID