質問: group_id AS RoleId 列の値を変更して、group_id AS RoleId = 3 のときに値が対応する値 5 に変更されるようにする最善の方法は何ですか?
背景: 次のクエリでは、2 つの異なるデータベースの 2 つのテーブルを、実際の一意のキーなしで比較しています。1 つのテーブルのエイリアスで first_name 列と last_name 列を結合し、それを他のテーブルの Name 列と比較する必要がありました。必要な結果が得られますが、RoleId 列と group_id 列に関連する 2 つの列があります。これらには対応する値があるため、たとえば RoleId =5 は group_id =3 と同じですが、RoleId = 4 は group_id = 4 と同じです。
ステートメントを選択:
SELECT
users.UserName,
users.phone,
users.email,
users.status,
users.group_id AS RoleId
FROM
(SELECT
Table1.dbo.users.first_name +' '+ Table1.dbo.users.last_name AS UserName,
Table1.dbo.users.phone,
Table1.dbo.users.email,
Table1.dbo.users.status,
Table1.dbo.users.group_id
FROM
Table1.dbo.users
) AS users
LEFT JOIN
Table2.dbo.UsersInfo ON
users.UserName = Table2.dbo.UsersInfo.Name
WHERE
Table2.dbo.UsersInfo.Name IS NULL