我正在尝试使用内部联接中的计算列更新列。 逻辑很简单,但我正在努力学习语法 (这只是一个虚拟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上使用此更新查询时,它在工作台上没有...
答案 0 :(得分:3)
啊,你的语法不合适。
Update Questions t1
join translations t2
on t2.QuestionID = t1.QuestionID
set t1.BodyText = concat(t1.bodytext,t2.questionbodytext)