Sql server 使用内部联接从两个表中获取值时,列名无效

Sql server 使用内部联接从两个表中获取值时,列名无效,sql-server,tsql,join,inner-join,Sql Server,Tsql,Join,Inner Join,我有两张桌子: tbl_配置文件和用户: [id] [int] IDENTITY(1,1) NOT NULL, [profile_id] [int] NOT NULL, [user_id] [nvarchar](50) NULL tbl_简介_和_活动: [id] [int] IDENTITY(1,1) NOT NULL, [profile_id] [int] NOT NULL, [user_id] [nvarchar](50) NOT NULL, [activity_name] [nvarc

我有两张桌子:

tbl_配置文件和用户:

[id] [int] IDENTITY(1,1) NOT NULL,
[profile_id] [int] NOT NULL,
[user_id] [nvarchar](50) NULL
tbl_简介_和_活动:

[id] [int] IDENTITY(1,1) NOT NULL,
[profile_id] [int] NOT NULL,
[user_id] [nvarchar](50) NOT NULL,
[activity_name] [nvarchar](50) NULL,
[check] [int] NULL,
[preferred] [int] NULL
这两个表中都有条目,我试图仅从指定的概要文件中选择用户和活动

我正在尝试通过以下连接执行此操作:

use [dbName]

SELECT p1.user_id AS User_ID, [p2.activity_name] as [Activity_Name]
FROM tbl_profiles_and_users AS p1 
INNER JOIN tbl_profiles_and_activities AS p2 
ON p1.user_id = p2.user_id AND p1.profile_id = p2.profile_id
但是我收到消息了 列名“p2.活动名称”无效
我做错了什么?我可以通过联接获得所需的结果吗?

因为您要转义整个列,因此,服务器将其读取为
[p2.activity\u name]
作为整个列名,这与
[p2].[activity\u name]

SELECT p1.user_id AS User_ID, [p2].[activity_name] as [Activity_Name]
FROM ....

(实际上是a,没有逃脱。)谢谢你,这就是解决办法。当计时器允许时,我会接受你的答案。@RedFilter是的,你是对的。试图找出正确的术语。谢谢