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 中运行它 - 您在正确的数据库中吗?包含这两个表的那个?

在此处输入图像描述

当查询窗口处于活动状态时,您可以看到您所在的当前数据库 - 无论是在工具栏上的下拉菜单中,还是在查询窗口的页脚中。

于 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 默认使用主数据库,这可能不是您想要的。

您可能想要限定表上的模式,而不是您选择的项目。例如:

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 回答