首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >server子查询连接错误

server子查询连接错误
EN

Stack Overflow用户
提问于 2013-12-15 18:58:51
回答 2查看 89关注 0票数 2

我希望更新GroupID列的massemail_emailmaster,并将其设置为存储在massemail_groupmaster上的值。这两个表都有GroupName列,这是我用来加入子查询的。但是下面的查询会给我带来错误。错误消息是a3附近不正确的语法。我不明白这里的语法错误。请帮帮忙。

代码语言:javascript
复制
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

代码语言:javascript
复制
(ClientID, varchar(50)),
           (uid, int)
           (Name, varchar(100))
           (GroupName, varchar(100))
           (Email, varchar(100))
           GroupId, int)

表的DDL

代码语言:javascript
复制
[dbo]. [massmail_groupmaster]
 (Clientid, varchar(50))
           ,(uid, int)
           ,(groupname, varchar(100))
(GroupId,int))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-15 19:45:48

以后在update子句中定义别名时,可以在from中使用它。(这是一种“不正常”的情况,别名是在第一次使用之后定义的。)

代码语言:javascript
复制
UPDATE a3
    set GroupId = (select TOP 1 a1.GroupID
                   from [dbo].[massmail_groupmaster] a1
                   where a1.[groupname] = a3.[groupname]
                  )
    FROM [dbo].[massmail_emailmaster] a3;
票数 2
EN

Stack Overflow用户

发布于 2013-12-15 19:03:21

代码语言:javascript
复制
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]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20598406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档