使用JOIN更新表 - MySQL

时间:2015-03-26 21:09:12

标签: mysql

我正在尝试使用内部联接中的计算列更新列。 逻辑很简单,但我正在努力学习语法 (这只是一个虚拟SQL,用于解释我想要完成的任务 - 它不会运行)

UPDATE t1
SET t1.BodyText = t2.final
from Questions as t1 
INNER JOIN translations as t2 
on t2.QuestionId=t1.QuestionID
CONCAT(t1.BodyText,t2.QuestionBodyText) as final

任务很简单,用翻译来提问。我在stackoverflow上发现了一些与此问题相关的问题,但它们没有帮助,可能是因为他们讨论的是SQL Server。

类似: Update a table using JOIN in SQL Server?

我试过了:

UPDATE Questions t1
JOIN translations t2
on t1.QuestionID=t2.QuestionId
SET t1.BodyText = CONCAT(t1.BodyText,t2.QuestionBodyText)

但它对数据库没有任何影响。

这是一个有效的SELECT:

SELECT CONCAT(t1.BodyText,t2.QuestionBodyText)  FROM Questions t1
JOIN translations t2
on t1.QuestionID=t2.QuestionId

更新,当我在phpmyadmin上使用此更新查询时,它在工作台上没有...

1 个答案:

答案 0 :(得分:3)

啊,你的语法不合适。

Update Questions t1
join translations t2
on t2.QuestionID = t1.QuestionID
set t1.BodyText = concat(t1.bodytext,t2.questionbodytext)