【问题标题】:Update table with condition matching使用条件匹配更新表
【发布时间】:2014-10-02 21:36:11
【问题描述】:

块引用

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

更新客户端_MP_julio SET MARCA_X = 'X' WHERE clientes_MP_julio.NUMERO_CUE = (SELECT CLAVE_REL FROM PAGOS A INNER JOIN clientes_MP_julio B ON A.CLAVE_REL =B.numero_cue)

但我收到了消息:

消息 512,第 16 级,状态 1,第 1 行 子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。 声明已终止。

我明白为什么该消息,但我不知道如何解决它!对不起...我是新来的!我真的很感谢你的帮助,希望有一天我也能提供帮助。 谢谢!

【问题讨论】:

  • 您的= 应该是IN
  • 非常感谢!!是吗!

标签: sql join subquery


【解决方案1】:

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

尝试以下方法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多