MySql - 使用选择更新

标签 mysql sql sql-update subquery

我需要用里面的选择来更新一个表。到目前为止,这是我的查询:

Update T_STATO_CASA
  Set  UTENTE = 'Admin'
Where ID_CASA in (
                  Select ID 
                    From T_CASA 
                   Where ID_RICHIESTA 
                      In (437869, 437233, 437235, 437876)
                  )

但它返回以下错误:“子查询返回超过 1 个值。当子查询跟随时,这是不允许的

=, !=, <, <= , >, >=

或者当子查询用作表达式时。" 如果我单独运行,子查询正好返回 4 个结果。我的语法错了吗?谢谢。

编辑:所有使用 JOIN 的建议解决方案都会给我语法错误,就好像 MySql 只需要 update-set-where 命令序列一样。例如我不能写类似的东西

update T_STATO_CASA as x
set [...]
where [...]

因为它给我语法错误:“单词 AS 附近的语法不正确。预期的 SET”

最佳答案

UPDATE t_stato_casa x
  JOIN t_casa y
    ON y.id = x.id_casa
   SET x.utente = 'admin'  
 WHERE y.id_richiesta IN(437869, 437233, 437235, 437876)

关于MySql - 使用选择更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51668451/

相关文章:

SQLite:带有内连接的复杂更新语句

mysql - 使用 MySQL 数据透视表查询月度出勤报告

mysql - 如何使一个属性成为mysql中2个属性的总和

MySql SUM(),按月分组,带 '0'的月份不出现

mysql - 比较两个mysql数据库中的数据

sql - 如何在mysql查询中获取一个变量中的多列

mysql - 修复 MySQL COUNT 查询中的错误

java - 如何使用 Hibernate Projection 检索复杂类及其成员?

php - SQLSTATE[42000] 更新 SQL

mysql - 为什么我的更新查询不起作用?