#mysql #sql #database
#mysql #sql #База данных
Вопрос:
Я знаю, что это как-то связано с синтаксисом, но я ищу способ сделать следующее:
UPDATE modules
SET ServerID = boards.ServerID
FROM boards,modules
WHERE modules.ID = boards.ID
это не работает. Я использую MySQL
Ответ №1:
Попробуйте это:
UPDATE boards,modules
SET modules.ServerID = boards.ServerID
WHERE modules.ID = boards.ID
Прочитайте синтаксис ОБНОВЛЕНИЯ MYSQL наhttp://dev.mysql.com/doc/refman/5.0/en/update.html
Вы также можете выполнять операции ОБНОВЛЕНИЯ, охватывающие несколько таблиц….
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
В предыдущем примере показано внутреннее соединение, в котором используется запятая
оператор, но операторы ОБНОВЛЕНИЯ с несколькими таблицами могут использовать любой тип
соединение разрешено в операторах SELECT, таких как LEFT JOIN.
Комментарии:
1. Вероятно, вам следует добавить префикс
ServerID
сmodules
, чтобы избежать неоднозначной ссылки на столбец
Ответ №2:
UPDATE modules
SET ServerID = (SELECT b.ServerID FROM boards b WHERE b.ID = modules.ID)
Ответ №3:
UPDATE modules
INNER JOIN boards
ON modules.ID = boards.ID
SET modules.ServerID = boards.ServerID
Ответ №4:
Синтаксис ОБНОВЛЕНИЯ не включает Из
FROM предназначен для ВЫБОРА.
если вы хотите объединить два:
UPDATE modules SET ServerID = (SELECT boards.ServerID FROM boards WHERE boards.ID = modules.ID)