mysql - 使用 2 Where 子句更新列不同的表

标签 mysql sql inner-join

我对带有 2 个 Where 子句的 UPDATE 语句有一些问题。
我想更新 StatoBloccatoApertoOrarioAperturaOrarioChiusura 只有一天叫做 LunIDRoom = 1

但此更新会更改所有日期的值。

UPDATE room
INNER JOIN giorni ON (room.IDRoom = giorni.FKRoom)
SET StatoBloccato = false, 
Aperto = true, 
OrarioApertura = '09:00:00', 
OrarioChiusura = '18:00:00' 
WHERE room.IDRoom = 1 AND Nome LIKE 'Lun%';

有 2 个表:Room,Giorni。

这里是 SQLFiddle

最佳答案

这似乎在我尝试时有效 here .

具体查询是:

UPDATE room r JOIN
       giorni g
       ON r.IDRoom = g.FKRoom
SET r.StatoBloccato = false, 
    g.Aperto = true, 
    g.OrarioApertura = '09:00:00', 
    g.OrarioChiusura = '18:00:00' 
WHERE r.IDRoom = 1 AND g.Nome LIKE 'Lun%';

虽然这应该等同于您的查询,但它使用限定所有 列名称,因此很清楚它们来自哪个表。

关于mysql - 使用 2 Where 子句更新列不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58153539/

相关文章:

Sql:模拟参数化 LIMIT

mysql合并两个varchar列删除重复的单词

php - 按标签搜索文章

MySQL UPDATE table1 where table1.FIELD = table2.FIELD

MySQL Left Join 表现得像 Inner Join

php - mysqli->commit 总是提交,即使语句中有错误

mysql - 在 MySQL 数据库中存储非关系元数据

sql - 调整 SQL 查询,(查询优化)

java - restSQL war 部署问题

php - 内连接查询建议