MySQL: обновление данных из одного столбца в другой с использованием двух соответствующих столбцов - PullRequest
1 голос
/ 28 мая 2019

Я пытаюсь обновить столбцы на основе двух совпадающих столбцов: firms.id = investors.firm и investors.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, чтобы узнать правильный синтаксис для использования рядом с '.id = investors.firm). SET firm.ceo = investors.name ГДЕ investors.firm_role =' в строке 1

Ответы [ 3 ]

1 голос
/ 28 мая 2019

Вы очень близки с вашим синтаксисом:

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

См. this .

0 голосов
/ 28 мая 2019

Вы можете попробовать это

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

0 голосов
/ 28 мая 2019

Попробуйте этот синтаксис

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() + "'"
...