mysql更新列内部连接另一个表
Posted
技术标签:
【中文标题】mysql更新列内部连接另一个表【英文标题】:mysql update column inner join another table 【发布时间】:2014-06-02 10:44:36 【问题描述】:我正在尝试根据另一个表的字段更新字段。代码如下:
UPDATE h
SET h.strength = c.strength
FROM hesters AS h
INNER JOIN campers AS c
ON h.camper_id = c.id
获取“#1064 - 您的 SQL 语法有错误;”
我的代码基于这个答案here。
有人发现语法错误吗?
【问题讨论】:
您可能想要进行选择。 【参考方案1】:尝试做类似的事情:
UPDATE hesters AS h
INNER JOIN campers AS c
ON h.camper_id = c.id
SET h.strength = c.strength
更新
这适用于sqlfiddle。
【讨论】:
语法错误。同样使用表名的别名也不应该影响这一点。 @themerlinproject 它适用于 sql fiddle。检查更新的答案。【参考方案2】:我不知道为什么上一个链接答案中的代码不起作用,但这是我最终使用的,来自UPDATE 上的 mysql 文档(搜索“join”)。
UPDATE hesters AS h,campers AS c
SET h.strength = c.strength
WHERE h.camper_id = c.id
【讨论】:
那是因为链接的答案属于 SQL Server,不 MySQL(这是你正在使用的)。没有两个 RDBMS 供应商以完全相同的方式实现功能。【参考方案3】:您需要将您的JOIN
子句放在您的SET
子句之前,并且您的h
别名需要在开头设置:
UPDATE hesters AS h
INNER JOIN campers AS c
ON h.camper_id = c.id
SET h.strength = c.strength
【讨论】:
这给出了同样的错误。我在 mysql 文档中找到了正确的语法。以上是关于mysql更新列内部连接另一个表的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用两个内部连接并将表设置为连接时在 MySQL 中使用更新语句?