Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Добавить поле с количесвом потомков


Автор: HappyLife 8.7.2008, 10:58
Приветствую уважаемые форумчане!

Прошу Вас, помочь мне составить правильно запрос.

Есть две таблицы
Код
table1
+------+--------+-------------+
|--id--|--name--|-description-|
+------+--------+-------------+
|   1  | nobody | director    |
+------+--------+-------------+
|   2  | Tom    | employee    |
+------+------- +-------------+
|   3  | Sam    | producer    |
+------+--------+-------------+

table2
+------+-------+-----------+
|--id--|--pid--|---name----|
+------+-------+-----------+
|   1  |   1   | Green St. | 
+------+-------+-----------+
|   2  |   1   | Yellow St.|
+------+-------+-----------+
|   3  |   1   | Red St.   |
+------+-------+-----------+
|   4  |   2   | Blue St.  | 
+------+-------+-----------+
|   5  |   2   | Dark St.  |
+------+-------+-----------+
|   6  |   3   | Red St.   |
+------+-------+-----------+
|   7  |   3   | Light St. | 
+------+-------+-----------+
|   8  |   3   | Pink St.  |
+------+-------+-----------+
|   9  |   3   | Purple St.|
+------+-------+-----------+

Как видно вторая таблица, есть потомки первой а именно её записей. Мне нужно на выходе получить таблицу 1 с количеством потомков.
Код

+------+--------+-------------+-------------+
|--id--|--name--|-description-|amount of pid|
+------+--------+-------------+-------------+
|   1  | nobody | director    |      3      |
+------+--------+-------------+-------------+
|   2  | Tom    | employee    |      2      |
+------+------- +-------------+-------------+
|   3  | Sam    | producer    |      4      |
+------+--------+-------------+-------------+


С уважением Игорь.

Автор: Magnifico 8.7.2008, 11:40
Код

select t1.id,t1.name,t1.description,count(t2.pid)
from table1 as t1
join table2 as t2
on t1.id =t2.pid
group by t1.id,t1.name,t1.description


только зачем так расчерчивал таблицы (любой мало- мальски сложный запрос требует наличичя данных)
это же надо избавиться от всех твоих черточек и палочек!

формат дожен быть csv (разделитель запятая или пробел)
Цитата

1  , 'nobody' , 'director'  
2  , 'Tom'   , 'employee'   
 3  , 'Sam'    ,'producer'
 
чтоб можно было просто сделать copy---> paste

Автор: HappyLife 8.7.2008, 13:33
Хорошо.

Но вот не задача, таким запросом он показывает только те у которых есть потомки. Но те записи у которых их нет, вместо нуля... просто не показываются....

Автор: Magnifico 8.7.2008, 14:08
вместо join    -->  left join

Автор: HappyLife 8.7.2008, 14:37
Magnifico, ок. Работает. СПАСИБО.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)