Выходит сколько вложенностей - столько и выборок, то что можно сделать одной выборкой мы будем делать count(user)+1 выборок. (ну это в твоем примере count(user)==1))
Пардоньте ! А где универсальность ? Это, конечно, выход, но sql сервер прикажет долго жить, при нормальных объемах.