Подскажите по вложенному запросу MySQL

Ufaweb
На сайте с 03.03.2008
Offline
182
569

Приветствую!

Опишу проблему: есть таблица

area_id | parent_id | name

В ней содержатся регионы и города. У городов parent_id равняется значению area_id соответствующего региона, у регионов же parent_id равняется NULL.

Нужно собрать массив, где ключи - id регионов, значения - кол-во городов, принадлежащих региону.

В общем-то сейчас все работает примерно так (по памяти):

$res= mysql_query("SELECT area_id FROM areas WHERE parent_id IS NULL"); //дергаю список регионов
while($row=@mysql_fetch_assoc($res)){
$res2= mysql_query("SELECT COUNT(*) as cnt FROM areas WHERE parent_id=$row{area_id}"); //дергаю кол-во городов в регионе
$res2= mysql_fetch_assoc($res2);
$regions{$row{area_id}}= $res2{cnt};
}

Готов убиться об потолок, не получается сообразить запрос с вложением... Тот "костыль", что сейчас фунциклирует делает 1+78 запросов, некошерно :no:...

Поможете?

М
На сайте с 08.02.2006
Offline
59
#1


SELECT area_id, (SELECT COUNT(*) FROM areas WHERE parent_id=AA.area_id) cnt FROM areas AA WHERE parent_id IS NULL
Ufaweb
На сайте с 03.03.2008
Offline
182
#2
Магнат:

SELECT area_id, (SELECT COUNT(*) FROM areas WHERE parent_id=AA.area_id) cnt FROM areas AA WHERE parent_id IS NULL

От души благодарю! Работает! :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий