Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Умные люди подскажите пожалуйста! / 6 сообщений из 6, страница 1 из 1
05.06.2015, 17:07:03
    #38977655
Ofigenski
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умные люди подскажите пожалуйста!
Задача стоит такая выбрать по N-ое кол-во товара в каждой из категорий.
Например в БД всего 5 категорий и у каждой категории более 1000 позиций товара, а нам нужно вывести всего по ТРИ позиции каждой категории,
получается в итоге в выборке будет всего 15 строк — 5 категорий в каждой по ТРИ позиции.
При помощи гугла соорудил запрос, но работает он только частично....

Вопрос по принтскрину:
в выборке первые ТРИ записи как и ожидалось, а далее по ОДНОЙ ??? Подскажите плиз!
...
Рейтинг: 0 / 0
05.06.2015, 17:24:21
    #38977675
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умные люди подскажите пожалуйста!
UNION и LIMIT не?
...
Рейтинг: 0 / 0
05.06.2015, 17:28:47
    #38977682
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умные люди подскажите пожалуйста!
OfigenskiЗадача стоит такая выбрать по N-ое кол-во товара в каждой из категорий .***!
7489069 , ***!
...
Рейтинг: 0 / 0
05.06.2015, 17:31:16
    #38977685
Ofigenski
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умные люди подскажите пожалуйста!
SharuPoNemnoguUNION и LIMIT не?

В этом случае 1000 категорий = 1000 UNIONов , а такое у меня рука не поднимется сотворить.
...
Рейтинг: 0 / 0
05.06.2015, 17:34:23
    #38977690
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умные люди подскажите пожалуйста!
Ofigenski,

ну в описании стоит 5 категорий. А тут уже 1000... а так union быстрее отработает чем костыли с переменными
...
Рейтинг: 0 / 0
05.06.2015, 18:26:42
    #38977736
Ofigenski
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умные люди подскажите пожалуйста!
tanglirOfigenskiЗадача стоит такая выбрать по N-ое кол-во товара в каждой из категорий .***!
7489069 , ***!

1000 благодарностей тебе о добрейший!!! Спасибо помогло!
Вот что получилось конкретно в моей ситуации:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT * FROM 
	(
		SELECT
			`id_goods_category` AS categoryId ,
			`id_goods` 			AS goodsId ,
			`goods_name_title` ,
			`goods_alias` ,
			`goods_images` ,
			if(
				@asCategoryId=g.id_goods_category, 
				@asDoodsNum:=@asDoodsNum+1, 
				@asDoodsNum:=1+least(0,@asCategoryId:=g.id_goods_category)
			) asCounter 
		FROM
			goods g , ( SELECT @asDoodsNum:=1, @asCategoryId:=0 ) asDoodsNumDefault
		ORDER BY
			id_goods_category, id_goods ASC
	) asResult
WHERE
	asCounter <= 3
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Умные люди подскажите пожалуйста! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]