- Автор темы
- #1
Я где-то находил образец выполнения такой задачи. Но хоть убейте - не соображу\нахожу щас. Просьба помочь.
Задача: есть таблицы
Как мне получить "список категорий и по 1 записи в каждой из них"? Мои попытки, связанные с LIMIT не увенчались успехом:
Выдаёт 1 категорию и 10 записей в ней(10 раз категорию, и в каждой по 1 записи, разной). А мне надо: список категорий + колонка "ZAnuCb" в которой по 1 записи из каждой категории. Причём с сортировкой по алфавиту. Запрос вида
Уходит в астрал. Если убираю "GROUP BY" - всё отрабатывает, но не правильно. Собственно: что я упустил? Как запрос составить?
Задача: есть таблицы
Код:
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
);
Код:
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;
Код:
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;