因此,我尝试使用表 Natan_Proveedor 中的
其中表 Proveedor_Logo
列的值更新表 Natan_Procesos
中的列 Proveedor_Logo
的值Natan_Procesos
中的行有一列名为 Producto_Prioridad
且值为 1:
$logo = $db->query( "UPDATE `quehago`.`Natan_Procesos`
SET `Proveedor_Logo` = `Proveedor_Logo`
WHERE `Natan_Procesos`.`Producto_Prioridad` =
( SELECT `Natan_Procesos`.`Producto_Prioridad` =1 )");
没有出现错误,但也没有传递任何值。我错过了什么?
回复更新:
所以我将其更改为:(仍然没有更新)
$logo = $db->query( "UPDATE `quehago`.`Natan_Procesos`
SET `Proveedor_Logo` = `Proveedor_Logo`
WHERE `Natan_Procesos`.`Producto_Prioridad` =
( SELECT * FROM `Natan_Procesos` WHERE `Producto_Prioridad` = 1)");
但我仍然认为值应该存储在哪里有些不对劲。我需要将它们存储到表 Natan_Procesos 的 Proveedor_Logo 列中。或者我从哪里获取值(value)?
第二次更新:
两个表都有一个名为 Proveedor_ID 的列,该列可能是要匹配的第二个条件。所以它会读到这样的内容:更新表 Natan_Proveedor 中的列 Proveedor_Logo,其中列 Producto_Prioridad 中的值 = 1 FROM 列 Proveedor_Logo in 表 Natan_Proveedor,其中 Natan_Proveedor 和 Natan_Procesos 在列 Proveedor_ID 中具有相同的值
最佳答案
尝试:
"UPDATE `quehago`.`Natan_Procesos`
SET `Proveedor_Logo` = `Proveedor_Logo`
WHERE `Natan_Procesos`.`Producto_Prioridad` =
( SELECT `Natan_Procesos`.`Producto_Prioridad` FROM `Natan_Procesos` WHERE `Producto_Prioridad` = 1 )"
<小时/>
应该是这样的吗?:
`"UPDATE `quehago`.`Natan_Procesos`
SET `Natan_Procesos`.`Proveedor_Logo` = ( SELECT `Natan_Proveedor`.`Proveedor_Logo` FROM `Natan_Proveedor` WHERE ?? = ?? )
WHERE `Natan_Procesos`.`Producto_Prioridad` = 1"`
<小时/>
试试这个:
UPDATE `quehago`.`Natan_Procesos`
INNER JOIN `Natan_Proveedor` ON
`Natan_Procesos`.`Proveedor_ID` = `Natan_Proveedor`.`Proveedor_ID`
SET `Natan_Procesos`.`Proveedor_Logo` = `Natan_Proveedor`.`Proveedor_Logo`
WHERE `Natan_Procesos`.`Producto_Prioridad` = 1
关于php - 这个查询有什么问题?我正在尝试根据第二个表中列的值更新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37329362/