|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
Не могу добиться следующего. Хочу с помощью запроса вытащить по одному товару из каждой категории. Т.е. есть категория "Автошины", в ней много товаров. Мне нужен только один товар. Есть категория "Масла", в ней лежит много товаров, мне нужен только один и т.д. Из товара мне нужно его detail_name. Грубо говоря товаров 30.000, категорий 252. В итоге мне нужен массив с 252 товарами. ProductCategory has_many :products Product belongs_to :product_category Еще есть таблица где ProductCategoryAssign: :belongs_to => :product :belongs_to => :product_category Делаю что-то типа: Код: plsql 1.
На Ruby написал приблизительно то что нужно, но это костыли (N+1) и долго, нужно запросом вытягивать: Код: ruby 1. 2. 3. 4. 5. 6. 7. 8.
или Код: ruby 1.
Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 08:49 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
mikeoleynik, если и пробовать с DISTINCT, то обязательно с ON (distinct ON). а так, можно использовать row_number(), либо попробовать любой из способов, описанных тут . большая часть из них без переделок "взлетит" и на PostgreSQL ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 09:19 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
mikeoleynik, если используется 9.3+, то лучше всего использовать lateral join для такой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 09:34 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
В итоге получилось так Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 14:55 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
mikeoleynikВ итоге получилось так Код: sql 1. 2. 3. 4. 5.
Будет очень небыстро работать если таблицы большие. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 15:04 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
mikeoleynik, великолепный пример от Саши Короткова http://akorotkov.github.io/blog/2016/06/17/faceted-search/ поможет вам. Олег ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 15:15 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
Oleg Bartunovmikeoleynik, великолепный пример от Саши Короткова http://akorotkov.github.io/blog/2016/06/17/faceted-search/ поможет вам. Олегкхм хотя, для всего--то 30000, да если табла неширокая -- м.б. даже и ничего. м.б. даже и нормально. если же табличка более существенная, то: 2ТС: отдельная табла категорий у вас есть ? если есть -- см. рекомендацию. Алексуса. если нет, но есть подходящие индексы -- попросите Максима найти ссылку на технику луз-индекскана. там всё просто. для 1:100 и далее и весьма существенной (в т.ч. по ширине) таблички оно может быть даже полезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 17:01 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
qwwqOleg Bartunovmikeoleynik, великолепный пример от Саши Короткова http://akorotkov.github.io/blog/2016/06/17/faceted-search/ поможет вам. Олегкхм хотя, для всего--то 30000, да если табла неширокая -- м.б. даже и ничего. м.б. даже и нормально. если же табличка более существенная, то: 2ТС: отдельная табла категорий у вас есть ? если есть -- см. рекомендацию. Алексуса. если нет, но есть подходящие индексы -- попросите Максима найти ссылку на технику луз-индекскана. там всё просто. для 1:100 и далее и весьма существенной (в т.ч. по ширине) таблички оно может быть даже полезно. Есть новая версия этой презентации "с блэкджеком и шлюхами" как водится, только на английском: How to teach an elephant to rock'n'roll Стала сильно более внятной как мне кажется. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2017, 12:35 |
|
Как вытащить по одному товару из каждой категории?
|
|||
---|---|---|---|
#18+
Maxim BogukЕсть новая версия этой презентации "с блэкджеком и шлюхами" как водится, только на английском: How to teach an elephant to rock'n'roll Отличная презентация, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2017, 13:08 |
|
|
start [/forum/topic.php?fid=53&fpage=76&tid=1996605]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 131ms |
0 / 0 |