[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите написать запрос
maximka787
Привет ребят. Нужна помощь именно профи, тк не могу запрос создать, а он сложный.
Есть таблица товары
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
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

Спустя 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

Спустя 9 минут, 3 секунды (22.05.2011 - 18:49) maximka787 написал(а):
neadekvat
ну, нет условия where, это значит для всех. а это что %val%

sharki
закипаю уже, мозг не осиливает) одну ошибку уже нашел
глупая конечно, но перепутал местами таблица.столбец

Спустя 2 минуты, 51 секунда (22.05.2011 - 18:52) sharki написал(а):
maximka787
Хотел написать насчет этого, но думал сам разберешься) Вообщем лучше передохни)

Вообщем ты хочешь сделать апдейт всех товаров? а не только одного?

Можно сделать намного проще, это получить каждый товар одни запросом, а потом циклом fetch_assoc'ом или тупо _result и сделать апдейт)

Или сидеть и подумать как сделать одним запросом)

Спустя 2 минуты, 5 секунд (22.05.2011 - 18:54) maximka787 написал(а):
sharki
не ну тут только запросом проще. у тебя идея отличная была, я с ошибкой столкнулся из-за того, что ты поставил 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
Спасибо дружище) все гуд. великолепно. я нашел ошибки свои.!


_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.