Обновление таблицы, установка соответствий - MySQL
Формулировка задачи:
Доброго времени суток!
прошу помощи в разрешении следующей задачи:
есть у меня 2 таблицы shop и price. в обоих таблицах имеются поля art и cena.
в таблице shop содержится большое колличество позиций, которое постоянно увеличивается (в данный момент порядка 5000 строк). в таблица price ежедневно очищается и в нее вносится порядка 1-2 тыс. позиций. вопрос вот в чем: как при обновлении таблицы price обновить поле cena в таблице shop согласно полю art, т.е. поле art является "привязкой".?
изначально пробовал средствами php сделать:
но из-за большого колличества сверяемых позиций сервер просто выдавал ошибку.
можно ли как то это реализовать средствами mysql?
$z=mysql_query("SELECT * FROM `price`"); while ($res = mysql_fetch_array($z)) { mysql_query("UPDATE `shop` SET `cena`='$res[cena]' WHERE `art`='$res[art]'"); }
Решение задачи: «Обновление таблицы, установка соответствий»
textual
Листинг программы
$z=mysql_query("SELECT * FROM `price`"); while ($res = mysql_fetch_array($z)) { mysql_query("UPDATE `shop` SET `cena`='$res[cena]' WHERE `art`='$res[art]'"); }
Объяснение кода листинга программы
- $z=mysql_query(
SELECT * FROM
price`); - запрос на выборку всех данных из таблицы
price` - while ($res = mysql_fetch_array($z)) { - цикл, который будет выполняться, пока есть результаты запроса
- mysql_query(
UPDATE
shopSET
cena='$res[cena]' WHERE
art='$res[art]'
); - запрос на обновление данных в таблицеshop
, где значениеcena
устанавливается равным значениюcena
из таблицыprice
, а условие WHERE используется для указания соответствия по полюart
- } - закрытие цикла
- Вывод данных не предусмотрен в данном коде
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д