Forum Webscript.Ru

Общие => Базы данных => Тема начата: Enemy от 26 Января 2004, 17:47:08

Название: отцы и дети
Отправлено: Enemy от 26 Января 2004, 17:47:08
Есть таблица с полями - uid, parent_uid, name есть такой вопрос -

1. как одним запросом вывести всех отцов у которых есть дети. (грубо говоря пускай отцом будет тот у кого parent_uid=0)

2. как тем же одним запросом сделать тоже самое + вывести количество детей каждого отца


З.Ы. задача вроди простая... сказал друзьям - те думают :). Есть уже два варианта - но не очень... Первый с использованием запроса в запросе. Второй с использованием дополнительного поля в таблице.
Название: отцы и дети
Отправлено: Макс от 26 Января 2004, 17:57:25
варианты с изменением структуры не предлагать ?
Название: отцы и дети
Отправлено: ondr от 26 Января 2004, 18:22:31
1.
SELECT t1.uid, t1.name, t1.parent_uid
FROM test t1, test t2
WHERE t1.parent_uid=0 && t1.uid=t2.parent_uid
GROUP BY t1.uid

2. по аналогии
Название: отцы и дети
Отправлено: ondr от 26 Января 2004, 18:40:23
в догонку

2.

SELECT t1.uid, t1.name, t1.parent_uid, count(t1.uid) as childs
FROM test t1, test t2
WHERE t1.parent_uid=0 && t1.uid=t2.parent_uid
GROUP BY t1.uid
Название: отцы и дети
Отправлено: Enemy от 26 Января 2004, 18:44:46
ondr
а что это значит?
Цитировать
test t1, test t2

две таблицы? или... пожалуйста обьясни.
Название: отцы и дети
Отправлено: ondr от 26 Января 2004, 18:59:41
t1,t2 это псевдонимы для одной и той же таблицы test

У меня сейчас инет отвратительный (эта страница открывалась минуту), поищи сам здесь
http://www.mysql.ru/docs/man/
Название: отцы и дети
Отправлено: Enemy от 26 Января 2004, 19:02:42
Макс
неа
Название: отцы и дети
Отправлено: Enemy от 26 Января 2004, 19:18:20
ondr
спасибо.