[英]sql server subquery join error
我想更新massemail_emailmaster的GroupID列,並將其設置為存儲在massemail_groupmaster上的值。 這兩個表都有GroupName列,這是我用來加入子查詢的列。 但是以下查詢給了我錯誤。 錯誤消息是a3附近的語法不正確。 我不明白語法錯誤。 請幫忙。
UPDATE [dbo].[massmail_emailmaster] a3
set a3.GroupId =
(select TOP 1 a1.GroupID from [dbo].[massmail_groupmaster] a1
join [dbo].[massmail_emailmaster] a2
on a1.[groupname] = a2.[groupname]
where a3.[GroupName]=a2.[GroupName])
表[dbo]. [massmail_emailmaster]
DDL [dbo]. [massmail_emailmaster]
[dbo]. [massmail_emailmaster]
(ClientID, varchar(50)),
(uid, int)
(Name, varchar(100))
(GroupName, varchar(100))
(Email, varchar(100))
GroupId, int)
表的DDL
[dbo]. [massmail_groupmaster]
(Clientid, varchar(50))
,(uid, int)
,(groupname, varchar(100))
(GroupId,int))
以后在from
子句中定義別名時,可以在update
使用別名。 (這是一種“錯誤”的情況,其中別名是在其首次使用后定義的。)
UPDATE a3
set GroupId = (select TOP 1 a1.GroupID
from [dbo].[massmail_groupmaster] a1
where a1.[groupname] = a3.[groupname]
)
FROM [dbo].[massmail_emailmaster] a3;
UPDATE a2
SET a2.GroupId = (SELECT TOP 1 a.GroupID
FROM [dbo].[massmail_groupmaster] a
INNER JOIN [dbo].[massmail_emailmaster] b
ON a.[groupname] = b.[groupname]
)
FROM [dbo].[massmail_emailmaster] a2
WHERE a.[groupname] = a2.[groupname]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.