[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: мин и макс значения запросом по фильтру
skolozhabskiy
добрый день,

задача: выбрать минимальное и максимальное значение из таблицы.

в таблице `products` есть индексированное поле `manufacturere_id` (числовое), которое связано с `id` таблицы производителей `manufacturers`.

когда я хочу получить минимальную и максимальную цену по продукту конкретного производителя в выбранной категории товаров я делаю такой запрос:


$selected_category = 34; // выбранная категория - индексированное поле, связанное с `id` таблицы `categories`
$filter = 'Роменская гардино-тюлевая фабрика'; // конкретный производитель товара
$query = "SELECT
MIN(`p`.`fixedPrice`) AS `price_min`,
MAX(`p`.`fixedPrice`) AS `price_max`
FROM `products` AS `p`
LEFT JOIN `manufacturers` AS `m` ON `p`.`manufacturer_id`=`m`.`id`
WHERE `p`.`category_id`='
$selected_category' AND `p`.`fixedPrice` NOT IN ('', 'null', 'OUT') AND `m`.`name`='".mysql_real_escape_string($filter)."'";


Примечание: категория товаров, например с id = 34, может включать несколько производителей, поэтому нужна выборка по фильтру конкретного производителя.

Вопросы:

1. Какие ошибки есть в этом запросе? Правильно ли он составлен?
2. Как в одном запросе получить данные, например от полей `p`.`fixed Code` и `m`.`name`?

возможен ли такой вариант запроса:


$query = "SELECT
`m`.`name` AS `manufacturer_name`,
`p`.`fixedCode` AS `price_code`,
MIN(`p`.`fixedPrice`) AS `price_min`,
MAX(`p`.`fixedPrice`) AS `price_max`
FROM `products` AS `p`
LEFT JOIN `manufacturers` AS `m` ON `p`.`manufacturer_id`=`m`.`id`
WHERE `p`.`category_id`='
$selected_category' AND `p`.`fixedPrice` NOT IN ('', 'null', 'OUT') AND `m`.`name`='".mysql_real_escape_string($filter)."'
GROUP BY `p`.`fixedCode`, `m`.`name`"
;



спасибо за помощь.








Спустя 5 часов, 39 минут, 56 секунд (29.09.2012 - 18:14) skolozhabskiy написал(а):
я задал слишком сложный вопрос?

спасибо за помощь

Спустя 13 минут, 13 секунд (29.09.2012 - 18:27) m4a1fox написал(а):
skolozhabskiy
user posted image
Обидели мышку......

Спустя 6 секунд (29.09.2012 - 18:27) inpost написал(а):
Можешь в карме смотреть причину, почему я не ответил smile.gif

Спустя 9 минут, 57 секунд (29.09.2012 - 18:37) skolozhabskiy написал(а):
спасибо за реплики, но все же хотелось бы услышать мнение профессионала.

inpost
по-поводу кармы я ответил там же и не считаю правильным то, что там написано.

мой ответ Вам в карме звучит так:

при наборе кода в редакторе действительно можно допустить технические описки и мне странно, что эксперт и профессионал первым делом обращает внимание именно на них. я всегда внимательно отношусь к профессиональным консультациям, а не к болтовне ни о чем. если бы мне нужна была помощь в поиске описок в посте, то тогда бы я полностью согласился с данным мнением. если внимательно перечитать все посты этого вопроса, то говорить о моей некорректности к собеседнику просто неуместно! прежде всего потому что помощи никакой, конкретно от вас, я не получил.

спасибо

Спустя 2 часа, 43 минуты, 52 секунды (29.09.2012 - 21:21) Shuriken написал(а):
Цитата
Какие ошибки есть в этом запросе? Правильно ли он составлен?


Запусти и сразу увидишь правильно ли состален запрос

Спустя 1 час, 54 минуты, 35 секунд (29.09.2012 - 23:16) skolozhabskiy написал(а):
уже запустил, вроде правильно, просто хотел услышать мнение профессионалов по-поводу его оптимизации.

всем спасибо.

Спустя 10 часов, 11 минут, 19 секунд (30.09.2012 - 09:27) Shuriken написал(а):
Тут даже оптимизировать нечего, выборка из двух таблиц. Если б было бы таблиц 5-6, то тогда был бы уместен вопрос оптимизации
Быстрый ответ:

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