【发布时间】:2013-06-24 09:18:18
【问题描述】:
我对这个问题有一百万个不同的答案,而且它们看起来都不同。一定有什么办法可以简单的解释一下吧?
如果你有两个这样的表:
Exhibition
ID *
DESC
CURATOR
Schedule
ID *
TITLE
STARTDATE
ENDDATE
每个 ID 引用另一个,每个表都存储关于同一对象的不同内容。
如何在一个语句中用新信息更新每一列?
我尝试过类似的方法:
UPDATE Schedule
INNER JOIN Exhibition
USING (ID)
SET Schedule.Title = :Title,
Exhibition.Desc = :Desc,
Schedule.StartDate = :StartDate,
Schedule.EndDate = :EndDate
WHERE ID = :ID;
但无济于事。我觉得这应该非常容易,但我只是想念它。
【问题讨论】:
-
:EndDate,上的额外逗号?具体错误是什么?哦顺便说一句,在这一行WHERE ID = :ID指定源表是Schedule.ID or Exhibition.ID否则你会得到 "ambiguous column error..." -
@JW웃 我没有收到任何错误,只是没有更新列,所以我认为我的查询有误。
-
从
mysql命令行或phpmyadmin尝试它是否有效? -
@Sean 只要它与表或别名相关联,它就会起作用,sqlfiddle.com/#!2/72e3c/1
-
这可能是 JW 发现的模棱两可的列。现在一切正常。
标签: php mysql pdo sql-update