2

私は2つのテーブルを持っています:

tbl_profiles_and_users:

[id] [int] IDENTITY(1,1) NOT NULL,
[profile_id] [int] NOT NULL,
[user_id] [nvarchar](50) NULL

tbl_profiles_and_activities:

[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.activity_name'というメッセージが表示されます。何が間違っていますか?結合で目的の結果を達成できますか?

4

1 に答える 1

6

列全体をエスケープしているため、サーバーはそれを列全体[p2.activity_name]の名前として読み取ります。これは、列全体とは大きく異なります。[p2].[activity_name]

SELECT p1.user_id AS User_ID, [p2].[activity_name] as [Activity_Name]
FROM ....
于 2012-11-08T15:18:27.653 に答える