Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 11:45   #1
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию выборка должностей

есть 2 таблицы
Код:
user
-------------
user_id
post_id
Код:
post
--------------------------
post_id
post_name
в user 3 пользователя
1) post_id=1
2) post_id=1
3) post_id=2

в post 4 должности
программист (post_id=1)
бухгалтер (post_id=2)
слесарь (post_id=3)
грузчик (post_id=4)

нужно после запроса получить такой результат:
Код:
post_name          COUNT(user_id)
------------------------
программист           2
бухгалтер               1
слесарь                  0
грузчик                  0
сделал такой запрос:
Код:
SELECT post_name, COUNT(user_id) FROM post,user Where user.post_id=post.post_id GROUP BY post_name
результат такой:
Код:
post_name          COUNT(user_id)
------------------------
программист           2
бухгалтер               1
как выводить и те должности у которых нет пользователей?
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 03.03.2010, 12:24   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
как выводить и те должности у которых нет пользователей?
объединить таблицы по LEFT JOIN

как вариант, можно к Вашему запросу дописать через
Код:
...
union select post_name, 0 from post where post_id not in (select post_id from user )
но это извращение! (хотя работать будет )

рекомендую всё таки вариант с LEFT JOIN
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2010, 12:52   #3
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

спасибо, работает
Код:
SELECT post_name, COUNT(user_id)
  FROM post
  left join user on user.post_id = post.post_id GROUP BY post_name
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка ЦЕРЦЕЯ Microsoft Office Excel 2 20.01.2010 14:13
Выборка из БД ИВАНьКа Общие вопросы C/C++ 4 21.08.2009 10:02
выборка из БД xvipx Microsoft Office Excel 13 30.01.2009 12:43
выборка Ser_gl Microsoft Office Excel 1 24.08.2007 20:49
Выборка John_chek БД в Delphi 10 27.06.2007 08:43