Сложный UPDATE - MySQL
Формулировка задачи:
доброго времени суток всем Многознающим экспертам!
имеется таблица в которой необходимо время от времени изменять параметр busnumber
на одинаковое поле с названием toplace в другой таблице с учетом того что это должна быть
последняя строка в этой таблице и поля snnum в обоих таблицах должны соответствовать друг другу.
moves.ain - поле с авто добавлением (по логике MAX(Moves.ain) последняя строка в таблице).
в phpMyAdmin запрос не проходит дает ошибку, прошу помощи от людей знающих как можно решить проблему.
UPDATE maintable SET maintable.busnumber = (SELECT Moves.toplace WHERE maintable.snnum=Moves.snnum AND MAX(Moves.ain))
Решение задачи: «Сложный UPDATE»
textual
Листинг программы
UPDATE maintable SET busnumber= (SELECT Moves.toplace FROM Moves ORDER BY ain DESC LIMIT 1 ) WHERE Moves.snnum=maintable.snnum AND maintable.snnum=125987
Объяснение кода листинга программы
В представленном коде выполняется обновление данных в таблице maintable. Список действий можно описать следующим образом:
- В предложении
UPDATE maintable
указывается, что операция обновления будет выполняться в таблице maintable. - В выражении
SET busnumber=
указывается, что поле busnumber будет использоваться для обновления данных. - В скобках
(SELECT Moves.toplace FROM Moves ORDER BY ain DESC LIMIT 1)
находится подзапрос, который выбирает значение поля toplace из таблицы Moves. При этом выбирается только одна запись, которая соответствует условию сортировки по убыванию поля ain и ограничению на выборку одной записи с помощью оператора LIMIT. - В блоке
WHERE Moves.snnum=maintable.snnum AND maintable.snnum=125987
указываются условия, при которых будет выполняться обновление. В данном случае, обновление будет выполняться только для записей, в которых значения полей snnum в таблицах Moves и maintable совпадают и равны 125987. При этом, в скобках указываются названия и значения переменных, которые используются в запросе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д