Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SELECT запрос: по X записей из каждой категории. / 3 сообщений из 3, страница 1 из 1
06.10.2017, 19:58
    #39532495
47911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT запрос: по X записей из каждой категории.
Я где-то находил образец выполнения такой задачи. Но хоть убейте - не соображу\нахожу щас. Просьба помочь.
Задача: есть таблицы

CREATE TABLE `ZAnuCu_OnuCAHuE`(
`id` INTEGER PRIMARY KEY,
`HAZBAHuE` TEXT ASC,
`MODELb` TEXT,
`KPATHOCTb` INTEGER,
`DOCTynHIOCTb` INTEGER,
`KAPTuHKA` TEXT,
`KATEGOPuia` INTEGER,
`PAZDEL` INTEGER,
`OnuCAHuE` TEXT,
`CTATyC` TEXT,
`PEDAKTuPOBAHuE` TEXT);

CREATE TABLE `ZAnuCu_KATEGOPuu`(
`id` INTEGER ASC,
`KATEGOPuia` INTEGER ASC,
`PAZDEL` INTEGER ASC,
`PEDAKTuPOBAHuE` TEXT);

CREATE TABLE `KATEGOPuu`(
`id_KATEGOPuu` INTEGER PRIMARY KEY,
`HAZBAHuE` TEXT,
`HAZBAHuE_nOLHOE` TEXT ASC,
`PODuTELb` INTEGER,
`PAZDEL` INTEGER,
`yPOBEHb` INTEGER,
`KOLu4ECTBO` INTEGER,
`PEDAKTuPOBAHuE` TEXT
);

Как мне получить "список категорий и по 1 записи в каждой из них"? Мои попытки, связанные с LIMIT не увенчались успехом:

SELECT k.`id_KATEGOPuu`, k.`HAZBAHuE`, k.`HAZBAHuE_nOLHOE`, k.`PODuTELb`, k.`yPOBEHb`, `KOLu4ECTBO`, k.`PEDAKTuPOBAHuE`, z.`HAZBAHuE` AS ZAnuCb
FROM `KATEGOPuu` k, `ZAnuCu_OnuCAHuE` z, `ZAnuCu_KATEGOPuu` z_k
WHERE z_k.`KATEGOPuia`=k.`id_KATEGOPuu`
LIMIT 0,10;

Выдаёт 1 категорию и 10 записей в ней(10 раз категорию, и в каждой по 1 записи, разной). А мне надо: список категорий + колонка "ZAnuCb" в которой по 1 записи из каждой категории. Причём с сортировкой по алфавиту. Запрос вида

SELECT k.`id_KATEGOPuu`, k.`HAZBAHuE`, k.`HAZBAHuE_nOLHOE`, k.`PODuTELb`, k.`yPOBEHb`, `KOLu4ECTBO`, k.`PEDAKTuPOBAHuE`, z.`HAZBAHuE` AS ZAnuCb
FROM `KATEGOPuu` k, `ZAnuCu_OnuCAHuE` z, `ZAnuCu_KATEGOPuu` z_k
WHERE z_k.`KATEGOPuia`=k.`id_KATEGOPuu`
GROUP BY k.`id_KATEGOPuu` ORDER BY k.`yPOBEHb` ASC, k.`HAZBAHuE` ASC, z.`HAZBAHuE` ASC
LIMIT 0,10;

Уходит в астрал. Если убираю "GROUP BY" - всё отрабатывает, но не правильно. Собственно: что я упустил?
...
Рейтинг: 0 / 0
08.10.2017, 15:07
    #39532937
мигель1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT запрос: по X записей из каждой категории.
47911,

а что left join??
...
Рейтинг: 0 / 0
10.10.2017, 15:17
    #39534114
Chego
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT запрос: по X записей из каждой категории.
команда select top 1 from table
комнда union плюсует выборки
или через временые таблицу собери все select
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SELECT запрос: по X записей из каждой категории. / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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