SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.06.2015 13:04:09

Santypa
Участник
Зарегистрирован: 25.06.2015
Сообщений: 6

Как вывести всех сотрудников и количество их публикаций?

Имеется три таблицы: сотрудники, публикации_сотрудников и публикации (схема данных на рисунке). Нужно вывести два столбца: фамилии сотрудников и количество их публикаций. Подскажите, пожалуйста, как это можно сделать? Заранее спасибо)

P.S Могу вывести ID сотрудников, у которых есть публикации, и количество их публикаций. Но нужно вывести всех сотрудников, даже у кого во втором столбце будет "0" стоять (результат как на второй картинке).

Отредактированно Santypa (25.06.2015 13:13:00)


Прикрепленные файлы:
Attachment Icon Безымянный.jpg, Размер: 27,876 байт, Скачано: 564

Неактивен

 

#2 25.06.2015 16:14:14

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Как вывести всех сотрудников и количество их публикаций?

Попробуйте

SELECT
  Сотрудники.фамилия,
  count(Публикации_сотрудников.ID_публикации)
FROM
  Сотрудники
  LEFT JOIN Публикации_сотрудников USING(ID_сотрудника)
GROUP BY
  Сотрудники.id


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 25.06.2015 16:58:13

Santypa
Участник
Зарегистрирован: 25.06.2015
Сообщений: 6

Re: Как вывести всех сотрудников и количество их публикаций?

Спасибо большое! Все работает!

P.S А можно ли при этом использовать условие WHERE? Например, вывести публикации за определенный год. Что-то типа

WHERE Публикации_сотрудников.ID_публикации IN (SELECT ID_публикации FROM Публикации WHERE год_публикации = '2012');

Просто в этом случае выдает только тех сотрудников, у кого есть публикации в 2012 году. Можно ли это как-то исправить?

Отредактированно Santypa (25.06.2015 18:03:49)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson