Сложный UPDATE - MySQL

Узнай цену своей работы

Формулировка задачи:

доброго времени суток всем Многознающим экспертам! имеется таблица в которой необходимо время от времени изменять параметр busnumber на одинаковое поле с названием toplace в другой таблице с учетом того что это должна быть последняя строка в этой таблице и поля snnum в обоих таблицах должны соответствовать друг другу.
UPDATE maintable SET maintable.busnumber = 
(SELECT Moves.toplace WHERE maintable.snnum=Moves.snnum AND MAX(Moves.ain))
moves.ain - поле с авто добавлением (по логике MAX(Moves.ain) последняя строка в таблице). в phpMyAdmin запрос не проходит дает ошибку, прошу помощи от людей знающих как можно решить проблему.

Решение задачи: «Сложный 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. Список действий можно описать следующим образом:

  1. В предложении UPDATE maintable указывается, что операция обновления будет выполняться в таблице maintable.
  2. В выражении SET busnumber= указывается, что поле busnumber будет использоваться для обновления данных.
  3. В скобках (SELECT Moves.toplace FROM Moves ORDER BY ain DESC LIMIT 1) находится подзапрос, который выбирает значение поля toplace из таблицы Moves. При этом выбирается только одна запись, которая соответствует условию сортировки по убыванию поля ain и ограничению на выборку одной записи с помощью оператора LIMIT.
  4. В блоке WHERE Moves.snnum=maintable.snnum AND maintable.snnum=125987 указываются условия, при которых будет выполняться обновление. В данном случае, обновление будет выполняться только для записей, в которых значения полей snnum в таблицах Moves и maintable совпадают и равны 125987. При этом, в скобках указываются названия и значения переменных, которые используются в запросе.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5