SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.09.2016 20:09:32

mysqlman
Участник
Зарегистрирован: 10.09.2016
Сообщений: 2

Помогите с составлением запроса

Здравствуйте, не могу додуматься как составить select запрос. Задачи 2:
1. сделать выборку записей без родителей, с тремя и более потомками
2. сделать выборку записей без потомков, но с 2-мя старшими родителями

Данные такие:

http://image.prntscr.com/image/4bb299f6d07d4b42868c0ca23c001642.png

Т.е. наглядно получается такая вложенность:

http://image.prntscr.com/image/a40c7f0437c84cf7a09141138433ece3.png

Неактивен

 

#2 12.09.2016 02:50:15

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: Помогите с составлением запроса

1. С тремя и более потомками - имеются в виду "непосредственные" дети узла дерева или их дети тоже считаются?
Приведите правильный ответ в Ваших данных.

2. А что значит с 2-мя старшими родителями? parent_id у каждой записи ведь 1 только может быть.
Приведите правильный ответ в Ваших данных.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 12.09.2016 05:53:32

mysqlman
Участник
Зарегистрирован: 10.09.2016
Сообщений: 2

Re: Помогите с составлением запроса

Такая формулировка была в тестовом задании
1. Получилось составить запрос взяв в расчет только непосредственных потомков:


SELECT *
FROM tbl
WHERE parent_id IS NULL
    AND id IN (
        SELECT parent_id
        FROM tbl
        GROUP BY parent_id
        HAVING COUNT(parent_id) >= 3
    );
 


2. Второй запрос составил предположив, что имеется в виду элементы, находящиеся не менее чем на 3м уровне:


SELECT *
FROM tbl
WHERE
    # not first level
    parent_id IS NOT NULL
    # and have no children
    AND id NOT IN (
        SELECT parent_id
        FROM tbl
        WHERE parent_id IS NOT NULL
        GROUP BY parent_id
    )
    # and parent is not a child of first level item
    AND parent_id NOT IN (
        SELECT id
        FROM tbl
        WHERE parent_id IS NULL
    )
 

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson