powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом обновления данных в таблице
4 сообщений из 4, страница 1 из 1
Помогите с запросом обновления данных в таблице
    #40096530
max_1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Создал в таблице oc_category 2 поля min_price и max_price. Хочу занести в эти поля минимальную и максимальную цену.

Пытаюсь сделать это таким запросом

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
UPDATE `oc_category` SET (min_price, max_price) = (
SELECT 
	path_id AS category_id,
	MIN(IFNULL(ps.price, p.price)) AS min_price, 
	MAX(IFNULL(ps.price, p.price)) AS max_price
FROM oc_product AS p 
LEFT JOIN oc_product_to_category AS ptc USING(product_id) 
LEFT JOIN oc_category_path USING(category_id)
LEFT JOIN oc_product_special AS ps USING(product_id) 
WHERE IFNULL(ps.price, p.price) > 0
AND path_id IS NOT NULL
AND p.quantity > 1 
AND p.date_available <= NOW() 
GROUP BY path_id)



Но он не работает, хотя SELECT отдельно выводит 3 колонки (category_id, min_price, max_price).

Буду благодарен за помощь! Спасибо!
...
Рейтинг: 0 / 0
Помогите с запросом обновления данных в таблице
    #40096532
max_1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сама таблица, которую хочу обновить имеет структуру
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
`category_id` int(11) NOT NULL,
  `image` varchar(255) DEFAULT NULL,
  `parent_id` int(11) NOT NULL DEFAULT 0,
  `top` tinyint(1) NOT NULL,
  `column` int(3) NOT NULL,
  `sort_order` int(3) NOT NULL DEFAULT 0,
  `status` tinyint(1) NOT NULL,
  `date_added` datetime NOT NULL,
  `date_modified` datetime NOT NULL,
  `min_price` decimal(15,4) NOT NULL DEFAULT 0.0000,
  `max_price` decimal(15,4) NOT NULL DEFAULT 0.0000
...
Рейтинг: 0 / 0
Помогите с запросом обновления данных в таблице
    #40096559
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_1985
Пытаюсь сделать это таким запросом

Код: sql
1.
2.
3.
4.
5.
UPDATE `oc_category` SET (min_price, max_price) = (
SELECT 
	path_id AS category_id,
	MIN(IFNULL(ps.price, p.price)) AS min_price, 
	MAX(IFNULL(ps.price, p.price)) AS max_price


В SET - 2 поля, в SELECT - 3...

Не говоря уж о том, что ВСЕ записи, возвращённые подзапросом, ты хочешь запихнуть в КАЖДУЮ из записей изменяемой таблицы.

max_1985
Но он не работает
Сообщение об ошибке читать не пробовал? а зря...
...
Рейтинг: 0 / 0
Помогите с запросом обновления данных в таблице
    #40096672
AndrewS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_1985, возможно подойдет Update из нескольких таблиц:
UPDATE...JOIN Tutorial
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом обновления данных в таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]