UPDATE列带有2 Where子句的不同表

时间:2019-09-29 08:25:37

标签: mysql sql inner-join

我对带有2 Where子句的UPDATE语句有一些问题。
我想仅在称为 Lun 的一天更新 StatoBloccato Aperto OrarioApertura OrarioChiusura IDRoom = 1

但是此UPDATE会更改整天的值。

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

1 个答案:

答案 0 :(得分:0)

当我尝试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%';

尽管这应与您的查询等效,但它使用限定 all 列名,因此很清楚它们来自哪个表。