SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 05.02.2016 15:20:05

fenix_63
Участник
Зарегистрирован: 05.02.2016
Сообщений: 1

Не получается сделать выборку

Всем привет! Народ, есть у меня вот такая таблица:

id    name    pid                (parent_id)
1    Раздел_1                      0
2    Раздел_2                      0
3    Раздел_3                      0
4    Раздел_4                      0
5    Подраздел 1.1              1
6    Подраздел 1.2              1
7    Подраздел 1.3              1
8    Подраздел 2.1              2
9    Подраздел 2.2              2
10    Подраздел 1.1.1              5
11    Подраздел 1.1.2              5
12    Подраздел 1.1.2.1     11
13    Подраздел 3.1              3
14    Подраздел 4.1              4
15    Подраздел 4.2              4


Мне надо сделать выборку записей без родителей, с тремя и более потомками, ну т.е. те, у которых pid=0, с 3 и более дочерними узлами, а это только запись "Раздел_1", т.к. на него ссылаются Подраздел 1.1, Подраздел 1.2 и Подраздел 1.3.

Пока смог сделать только вот такой запрос:

SELECT name FROM `catalogue` WHERE pid IN (SELECT id FROM catalogue WHERE pid=0)

Помогите составить запрос корректно, чтобы были нужные данные, а то уже целый день убил. как то Count применить нужно, а как правильно - не знаю.

Неактивен

 

#2 05.02.2016 15:48:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Не получается сделать выборку

SELECT name FROM `catalogue` c WHERE pid=0 AND (SELECT count(*) FROM `catalogue` c1 WHERE c1.pid=c.id) > 2;

Неактивен

 

Board footer

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