Есть 2 таблицы, мне нужно увеличить значение price
стобца s_variants
на 10% где brand_id = 84
и price < 1000
.
Пробывал сделать через JOIN
он не работает, попробывал через подзапрос
UPDATE `s_variants`
SET `s_variants`.`price`= `s_variants`.`price` * 1.1
WHERE `s_variants`.`price` < 1000
AND `s_variants`.`product_id` =
(SELECT `s_products`.`id` FROM `s_products` WHERE `s_products`.`brand_id` = 84)
Но, получаю ошибку, что подзапрос возвращает несколько вариантов. Как правильно составить запрос, что бы выполнить задачу?
таблица s_products
| id | brand_id |
-------------------
| 1 | 21 |
| 5 | 84 |
| 235 | 84 |
таблица s_variants
| id | product_id | price |
----------------------------
| 38 | 1 | 545 |
| 25 | 5 | 158 |
| 35 | 235 | 999 |
Абсолютно правильная ошибка, результат выполнения подзапроса - множество, значит знак равенства не подойдет. Вам нужно использовать in
UPDATE `s_variants`
SET `s_variants`.`price`= `s_variants`.`price` * 1.1
WHERE `s_variants`.`price` < 1000
AND `s_variants`.`product_id` IN
(SELECT `s_products`.`id` FROM `s_products` WHERE `s_products`.`brand_id` = 84)
пример на sqlfiddle
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Нужна помощь по php знающих людейЯ беру с сайта картинку и ее название с полей формы input типом text и input типом file, которые пользователь загружает...
Читаю документацию по реализации оплаты на сайте, и не понимаю, как реализовать ответ
Нужно занести переменные в одну переменную, чтобы на выходе получилось вот так: