MySQL:使用两个匹配的列将数据从一列更新到另一列

时间:2019-05-28 08:08:04

标签: mysql sql sql-update mariadb

我正在尝试根据两个匹配的列更新列:firms.id = investors.firminvestors.firm_role = "ceo",但是服务器一直拒绝我的语法。我尝试过inner join,而没有inner join,这对我来说真的太复杂了,所以我不确定下一步该怎么做。

UPDATE firms 
JOIN investors USING (firms.id = investors.firm) 
SET firms.ceo = investors.name
WHERE investors.firm_role = "ceo"

错误:

  

SQL错误(1064):您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以在第1行的'.id = investors.firm)SET firm.ceo = investors.name WHERE investors.firm_role ='附近使用正确的语法

3 个答案:

答案 0 :(得分:1)

您的语法非常接近

UPDATE firms 
LEFT JOIN investors ON firms.id = investors.firm
SET firms.ceo = investors.name 
WHERE investors.firm_role = "ceo"

请参阅this

答案 1 :(得分:0)

尝试使用此语法

update patients set column_name="value" where (condition)

例如,即时通讯使用c#可以实现

update patients set " + dgv.Columns[c].HeaderText + "='" + dgv.Rows[dgv.CurrentCell.RowIndex].Cells[c].Value.ToString() + "' where idno='" + dgv.Rows[dgv.CurrentCell.RowIndex].Cells[0].Value.ToString() + "'"

答案 2 :(得分:0)

您可以尝试

UPDATE firms INNER JOIN investors ON firms.id = investors.firm AND investors.firm_role = "ceo" SET firms.ceo = investors.name