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 

何らかの理由で機能しません。Intellisense はリストの最後のエイリアスのみを表示するため、"d" になります。残りのコードを書き出すと、xxxx 列をバインドできませんでした...どうすればよいですか? 複数のテーブルから選択し、それらすべてのテーブルに内部結合を適用したい (DW を構築する)。

ありがとう

4

1 に答える 1

4

古いもの ( の結合条件WHERE) と新しいもの (JOINキーワードを使用) という 2 つのスタイルの結合を混在させないでください。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 
于 2013-03-25T19:01:46.293 に答える