[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySQL запросы
RCuPeR
Добрый день. Так как с мускулом у меня только на уровне "вытащить/вставить/обновить/удалить", прошу помощи в решении некой задачки:

Дана таблица с деревом категорий:
CREATE TABLE category (
id integer not null primary key,
parent_category_id integer references category(id),
name varchar(100) not null
);


Напишите запросы (БД - “правильная”, умеющая делать подзапросы, различные соединения и прочее):
1. На выборку всех категорий верхнего уровня, начинающихся на “авто”
2. На выборку всех категорий, имеющих не более трёх подкатегорий следующего уровня (без глубины)
3. На выборку всех категорий нижнего уровня (т.е. не имеющих детей)

Напишите индексы, которые позволят сделать эти запросы быстрее.

Надеюсь на вашу помощь. Спасибо.



Спустя 4 часа, 29 минут, 27 секунд (28.10.2011 - 16:52) RCuPeR написал(а):
Мужики, не знает никто ?

Спустя 10 минут, 3 секунды (28.10.2011 - 17:02) Игорь_Vasinsky написал(а):
т ак ты блин структуру БД то напиши.

Спустя 20 минут, 44 секунды (28.10.2011 - 17:22) RCuPeR написал(а):
CREATE TABLE category (
id integer not null primary key,
parent_category_id integer references category(id),
name varchar(100) not null
);


Ну вот же.

Спустя 44 секунды (28.10.2011 - 17:23) Игорь_Vasinsky написал(а):
это 1 таблица, а иы говоришь про
Цитата
1. На выборку всех категорий верхнего уровня, начинающихся на “авто”
2. На выборку всех категорий, имеющих не более трёх подкатегорий следующего уровня (без глубины)
3. На выборку всех категорий нижнего уровня (т.е. не имеющих детей)

Спустя 3 минуты, 52 секунды (28.10.2011 - 17:27) RCuPeR написал(а):
Это все, что задано.

В принципе, по структуре тут понятно. В id ясно чего, в "parent_id" айдишник родительской категории если такая существует, иначе NULL, ну и в нейм все ясно.

Спустя 21 минута, 21 секунда (28.10.2011 - 17:48) Invis1ble написал(а):
RCuPeR
я сначала написал пару запросов (по 1-му и 3-му пункту), но потом решил что это халява и тебе стоит самому в этом разобраться и не стал постить smile.gif

Спустя 26 минут, 42 секунды (28.10.2011 - 18:15) Игорь_Vasinsky написал(а):
parents и childs хранятся в разных таблицах БД - пора почитать про JOIN

Спустя 3 минуты, 29 секунд (28.10.2011 - 18:18) Invis1ble написал(а):
Игорь_Vasinsky
Цитата
parents и childs хранятся в разных таблицах БД - пора почитать про JOIN

Интересно, как ты при такой архитектуре сделаешь дерево с неограниченным уровнем вложенности.

Спустя 45 секунд (28.10.2011 - 18:19) RCuPeR написал(а):
Цитата (Invis1ble @ 28.10.2011 - 14:48)
RCuPeR
я сначала написал пару запросов (по 1-му и 3-му пункту), но потом решил что это халява и тебе стоит самому в этом разобраться и не стал постить smile.gif

Не получается мне в этом мускуле разгребаться mad.gif
Да и времени нету sad.gif
Может все таки поможешь ?

Спустя 1 минута, 22 секунды (28.10.2011 - 18:21) Игорь_Vasinsky написал(а):
Invis1ble
с горем попалам.

пропустил я момент с бесконечной вложенностью, пропустил.

Спустя 8 минут, 26 секунд (28.10.2011 - 18:29) Invis1ble написал(а):
1.
select * from `category` where `parent_category_id` is null and `name` like 'авто%'

3.
select l1 . * from  `category` l0
right join `category` l1 on l1.`id` = l0.`parent_category_id`
where l0.`id` is null

по второму не знаю, как грамотно решается
Вообще,
Цитата
Да и времени нету

конечно улыбнуло

Спустя 1 минута, 54 секунды (28.10.2011 - 18:31) Invis1ble написал(а):
Цитата
с горем попалам.

да никак, тебе прийдется для каждого наследника создавать отдельную таблицу

Спустя 2 минуты, 32 секунды (28.10.2011 - 18:33) RCuPeR написал(а):
Invis1ble, спасибо большое. Осталось как-то решить второй вопрос.

Цитата
конечно улыбнуло

Да, действительно смешно. Но времени на изучение грамотной работы с мускулом нету. Все никак руки не дойдут.

Спустя 13 минут, 27 секунд (28.10.2011 - 18:47) Игорь_Vasinsky написал(а):
Invis1ble
Цитата
да никак, тебе прийдется для каждого наследника создавать отдельную таблицу


да легко, лишь бы заплатили.


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.