更新具有条件匹配的表

时间:2014-10-02 21:36:12

标签: sql join subquery

块引用

我正在尝试用'X'标记所有与表A中的Clave_Rel字段和表B中的numero_cue相匹配的记录。 我正在做这样的事情:

  

UPDATE clientes_MP_julio SET MARCA_X   ='X'WHERE clientes_MP_julio.NUMERO_CUE =(选择CLAVE_REL来自PAGOS A INNER JOIN clientes_MP_julio B ON A.CLAVE_REL = B.numero_cue)

但我收到的消息是:

Msg 512,Level 16,State 1,Line 1 子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。 声明已经终止。

我理解为什么要留言,但我不知道如何解决它!对不起......我是新来的!我非常感谢你的帮助,希望总有一天我能帮到你。 谢谢!

1 个答案:

答案 0 :(得分:0)

您不应该需要子查询,只需要一个简单的内连接。您的语法问题是=符号需要右侧的单个值,而子查询返回多个值。

尝试以下方法:

UPDATE
    clientes_MP_julio
SET 
    c.MARCA_X = 'X'
FROM
    clientes_MP_julio AS c
    INNER JOIN
    PAGOS AS p
    ON
        p.CLAVE_REL = c.NUMERO_CUE