MySQL一次更新多个表

时间:2013-06-27 02:22:31

标签: php mysql pdo sql-update

我对这个问题有一百万个不同的答案,它们看起来都不一样。必须有一些方法以简单的方式解释这个问题吗?

如果你有两个这样的表:

Exhibition
ID *
DESC
CURATOR

Schedule
ID *
TITLE
STARTDATE
ENDDATE

每个ID引用另一个ID,每个表存储有关同一对象的不同内容。

如何在一个声明中使用新信息更新每一列?

我尝试过类似的事情:

    UPDATE Schedule
    INNER JOIN Exhibition
    USING (ID)
    SET Schedule.Title =            :Title, 
        Exhibition.Desc =           :Desc,
        Schedule.StartDate =        :StartDate, 
        Schedule.EndDate =          :EndDate
    WHERE ID = :ID;

但无济于事。我觉得这应该非常简单,但我只是错过了它。

2 个答案:

答案 0 :(得分:1)

像这样更新

UPDATE Schedule, Exhibition
    SET Schedule.Title =            :Title, 
        Exhibition.Desc =           :Desc,
        Schedule.StartDate =        :StartDate, 
        Schedule.EndDate =          :EndDate
    WHERE ID = :ID AND Schedule.refcol = Exhibition.refcol;

答案 1 :(得分:1)

显然WHERE ID = :ID太模糊了。将其更改为WHERE Schedule.ID = :ID会产生预期的效果。

感谢JW웃