|
|
|
Непонятно работает ORDER BY MAX(Price) при GROUP BY
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Имеется две таблицы: Categories - таблица категорий товаров, Items - товары. Имеется следующий запрос (часть лишнего я из него удалил): SELECT Items.Name, Items.Brand, Items.Param1, Items.Param2, [еще набор полей] FROM Items INNER JOIN Categories ON Items.Category=Categories.id GROUP BY Items.Name, Items.Brand, Items.Param1, Items.Param2 ORDER BY MAX(Items.Price) DESC Тут я получаю уникальные группы товаров по полям Items.Name, Items.Brand, Items.Param1, Items.Param2. Дальше для каждой группы выполняю поиск товара, подходящего для нее: SELECT * FROM Items WHERE Name='Имя ряда' AND Brand='Производитель' AND Param1='Характеристика 1' AND Param2='Характеристика 2' GROUP BY Color ORDER BY Price DESC На сайте это выглядит так: есть блоки групп товаров, внутри каждого блока товары, принадлежащие данной группе. Данные запросы работают при сортировке по цене, т.е. группы должны сортироваться по максимальной цене товара в данной группе. Проблема заключается в следующем: неправильно определяется эта максимальная цена - MAX(Items.Price). На сайте это выглядит так: группы имеют максильные цены в таком порядке 53, 46, 44, 47, 47, 43, 41, 43 и т.д. убивает, но не по порядку. Не пойму, в чем проблема, вроде же должно нормально работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 12:42:25 |
|
||
|
Непонятно работает ORDER BY MAX(Price) при GROUP BY
|
|||
|---|---|---|---|
|
#18+
nik_wwwНа сайте это выглядит так: группы имеют максильные цены в таком порядке 53, 46, 44, 47, 47, 43, 41, 43 и т.д. убивает, но не по порядку. если коротко - то всем ровно "пофик" как это "выглядит на сайте", и что там в этом твоём пхп-е накрутили в каком-нибудь МуСКЛ-клиенте (пхпАдмин, например) - отображается правильно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 12:49:00 |
|
||
|
Непонятно работает ORDER BY MAX(Price) при GROUP BY
|
|||
|---|---|---|---|
|
#18+
nik_wwwДоброго времени суток. Имеется две таблицы: Categories - таблица категорий товаров, Items - товары. Имеется следующий запрос (часть лишнего я из него удалил): Код: sql 1. 2. 3. 4. Тут я получаю уникальные группы товаров по полям Items.Name, Items.Brand, Items.Param1, Items.Param2. Дальше для каждой группы выполняю поиск товара, подходящего для нее: Код: sql 1. 2. 3. 4. 5. На сайте это выглядит так: есть блоки групп товаров, внутри каждого блока товары, принадлежащие данной группе. Данные запросы работают при сортировке по цене, т.е. группы должны сортироваться по максимальной цене товара в данной группе. Проблема заключается в следующем: неправильно определяется эта максимальная цена - MAX(Items.Price). На сайте это выглядит так: группы имеют максильные цены в таком порядке 53, 46, 44, 47, 47, 43, 41, 43 и т.д. убивает, но не по порядку. Не пойму, в чем проблема, вроде же должно нормально работать? ааа, так 2-й запрос - это у тебя курсор (цикл) по результатам первого ? так в 1-ом - нет условий из 2-ого, соответственно, и результаты получаются разные ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 12:53:22 |
|
||
|
Непонятно работает ORDER BY MAX(Price) при GROUP BY
|
|||
|---|---|---|---|
|
#18+
qwerty112ааа, так 2-й запрос - это у тебя курсор (цикл) по результатам первого ? так в 1-ом - нет условий из 2-ого, соответственно, и результаты получаются разные ! нее, не то ... всё ещё более запущенно Код: sql 1. 2. 3. 4. 5. вот из-за этого GROUP BY - в результат будет выбиратся совершенно произвольный Price в SELECT-е нужен MAX(Items.Price) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 12:58:03 |
|
||
|
Непонятно работает ORDER BY MAX(Price) при GROUP BY
|
|||
|---|---|---|---|
|
#18+
Во второй запрос подставляются Items.Name, Items.Brand, Items.Param1, Items.Param2 из первого запроса (WHERE Name='Имя ряда' AND Brand='Производитель' AND Param1='Характеристика 1' AND Param2='Характеристика 2' - 'Имя ряда', 'Производитель', 'Характеристика 1', 'Характеристика 2' - результат первого запроса). 2й запрос идет в цикле по результату первого. "GROUP BY Color" делаю, чтоб исключить повторяющиеся цвета товара. Похоже, тут теряю цены. Спасибо, проверю, подумаю как исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 15:55:31 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38354245&tid=1836322]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 308ms |

| 0 / 0 |
