Есть таблица товары
id_tovar, name, full_price
1, Товар1, цена которую надо сделать
2, Товар2, цена которую надо сделать
3, Товар3, цена которую надо сделать
Есть таблица цен (у товара их много)
id, id_tovar, price
1, 1, 5000
2, 1, 5500
3, 1, 6000
//у товара id 1 три цены например
помогите написать update запрос для таблицы 1 чтоб получилось
full price(VARCHAR) вот в таком виде "от 5000 до 6000"
Спустя 2 минуты, 30 секунд (22.05.2011 - 16:06) maximka787 написал(а):
Если это очень сложно сделать, то может какие другие варианты надо попробовать? например текстовую full_price заменить на 2 колонки числовые типа min max, но от этого запрос для меня не легче.
Спустя 20 минут, 53 секунды (22.05.2011 - 16:27) sharki написал(а):
maximka787
Ничего трудного, просто надо было немного подумать
Ничего трудного, просто надо было немного подумать
UPDATE `table1`
SET `full_price` = CONCAT ('от ',(SELECT MIN(`price`) FROM `table2` WHERE `id_tovar` = 1),' до ', (SELECT MAX(`price`) FROM `table2` WHERE `id_tovar` = 1))
WHERE `id` = 1
Спустя 1 час, 29 минут, 41 секунда (22.05.2011 - 17:57) maximka787 написал(а):
sharki
спасибо, попробую.
спасибо, попробую.
Спустя 30 минут, 9 секунд (22.05.2011 - 18:27) maximka787 написал(а):
sharki
Только у меня опять проблема, наверно в синтаксисе, пишет ошибки. я создал 2 колонки МИН и МАКС и разбил твой пример на 2 запроса. сначала для минимальных потом для максимальных. но видимо что-то совсем рядом но не так делаю.
Названия таблиц
product и product_prices
мне главное для всех строк сделать, а не для одного ID как на своем примере.
Только у меня опять проблема, наверно в синтаксисе, пишет ошибки. я создал 2 колонки МИН и МАКС и разбил твой пример на 2 запроса. сначала для минимальных потом для максимальных. но видимо что-то совсем рядом но не так делаю.
Названия таблиц
product и product_prices
UPDATE `product` SET `price_min` =
(SELECT MIN(`price`) FROM `product_prices` WHERE id_product.product = id_product.product_prices) from product
мне главное для всех строк сделать, а не для одного ID как на своем примере.
Спустя 4 минуты, 22 секунды (22.05.2011 - 18:31) neadekvat написал(а):
maximka787, ты пробовал прочитать, что там в ошибке то написано?
Спустя 1 минута, 37 секунд (22.05.2011 - 18:33) maximka787 написал(а):
neadekvat
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from product' at line 2
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from product' at line 2
Спустя 6 минут, 10 секунд (22.05.2011 - 18:39) neadekvat написал(а):
Смотри, убираю подзапрос:
Не смущает?
UPDATE `product` SET `price_min` = %val% from product
Не смущает?
Спустя 47 секунд (22.05.2011 - 18:40) sharki написал(а):
Читай последний пример из доков
http://phpclub.ru/mysql/doc/update.html
http://phpclub.ru/mysql/doc/update.html
Спустя 9 минут, 3 секунды (22.05.2011 - 18:49) maximka787 написал(а):
neadekvat
ну, нет условия where, это значит для всех. а это что %val%
sharki
закипаю уже, мозг не осиливает) одну ошибку уже нашел
глупая конечно, но перепутал местами таблица.столбец
ну, нет условия where, это значит для всех. а это что %val%
sharki
закипаю уже, мозг не осиливает) одну ошибку уже нашел
глупая конечно, но перепутал местами таблица.столбец
Спустя 2 минуты, 51 секунда (22.05.2011 - 18:52) sharki написал(а):
maximka787
Хотел написать насчет этого, но думал сам разберешься) Вообщем лучше передохни)
Вообщем ты хочешь сделать апдейт всех товаров? а не только одного?
Можно сделать намного проще, это получить каждый товар одни запросом, а потом циклом fetch_assoc'ом или тупо _result и сделать апдейт)
Или сидеть и подумать как сделать одним запросом)
Хотел написать насчет этого, но думал сам разберешься) Вообщем лучше передохни)
Вообщем ты хочешь сделать апдейт всех товаров? а не только одного?
Можно сделать намного проще, это получить каждый товар одни запросом, а потом циклом fetch_assoc'ом или тупо _result и сделать апдейт)
Или сидеть и подумать как сделать одним запросом)
Спустя 2 минуты, 5 секунд (22.05.2011 - 18:54) maximka787 написал(а):
sharki
не ну тут только запросом проще. у тебя идея отличная была, я с ошибкой столкнулся из-за того, что ты поставил 1. а не для всех. вот пытаюсь переделать немного. Ругань на синтаксис идет.
не ну тут только запросом проще. у тебя идея отличная была, я с ошибкой столкнулся из-за того, что ты поставил 1. а не для всех. вот пытаюсь переделать немного. Ругань на синтаксис идет.
UPDATE product SET price_min =
(SELECT MIN(`price`) FROM
`product_prices`, `product`
WHERE id_product.product = id_product.product_prices)
Спустя 6 минут, 47 секунд (22.05.2011 - 19:01) sharki написал(а):
maximka787
Переделай под свой, все работает
Переделай под свой, все работает
UPDATE `table1`,`table2`
SET `table1`.`full_price` = (SELECT MIN(`price`) FROM `table2` WHERE `table2`.`id_tovar` = `table1`.`id`)
WHERE `table1`.`id`=`table2`.`id_tovar`
Спустя 6 минут, 39 секунд (22.05.2011 - 19:07) maximka787 написал(а):
sharki
Спасибо дружище) все гуд. великолепно. я нашел ошибки свои.!
Спасибо дружище) все гуд. великолепно. я нашел ошибки свои.!
_____________
..Работает - не трогай!