1
SELECT * FROM agency
INNER JOIN TUser
[agency].[dbo].[Matrix_Branch_ID]=[TUser].[dbo].[client_id]
Microsoft SQL Server Managment Studio gives me:

SQL Server Management Studio は次のことを教えてくれます。

メッセージ 170、レベル 15、状態 1、行 3
行 3: '.' 付近の構文が正しくありません。

編集

構文エラーを修正した後

SELECT * FROM agency
INNER JOIN TUser
ON dbo.agency.Matrix_Branch_ID=dbo.TUser.client_id

SQL Server Management Studio は次のようになりました。

メッセージ 208、レベル 16、状態 1、行 1
無効なオブジェクト名「機関」。
メッセージ 208、レベル 16、状態 1、行 1
無効なオブジェクト名 'TUser'。

4

3 に答える 3

8

これを SSMS で実行している場合 - 適切なデータベースにいますか。これらの2つのテーブルを含むもの?

ここに画像の説明を入力

ツールバーのドロップダウンとクエリ ウィンドウのフッターの両方で、クエリ ウィンドウがアクティブなときに現在のデータベースを確認できます。

于 2012-06-21T17:58:46.867 に答える
5

ONキーワードがありませんFROM (Transact-SQL)<joined table>の文法を参照してください

<joined_table> ::=  {
   <table_source> <join_type> <table_source> ON <search_condition> 
   | <table_source> CROSS JOIN <table_source> 
   | left_table_source { CROSS | OUTER } APPLY right_table_source 
   | [ ( ] <joined_table> [ ) ]  }

また、[dbo]テーブル名とフィールド名の間が間違っていると思います。オブジェクト名としての識別子の使用を参照してください

これはうまくいくはずです

SELECT * FROM agency
INNER JOIN TUser
ON [agency].[Matrix_Branch_ID]=[TUser].[client_id]
于 2012-06-21T16:56:04.047 に答える
2

正しいデータベースを選択していますか? SQL Server はデフォルトで master データベースを使用しますが、これはおそらくあなたが望むものではありません。

おそらく、選択しているアイテムではなく、テーブルでスキーマを修飾する必要があります。例えば:

Use [Database_name]

SELECT * FROM dbo.agency
INNER JOIN dbo.TUser ON agency.Matrix_Branch_ID=TUser.client_id
于 2012-06-21T17:26:00.817 に答える