Заявление о присоединении для MySQL - PullRequest
2 голосов
/ 10 ноября 2010

У меня есть база данных MySQL, содержащая следующие таблицы:

Table: Professor
Attributes: ID, ProfessorName

Table: Class
Attributes: ID, ClassName, SubjectID (secondary)

Table: Subject
Attributes: ID, SubjectName

Table: DocCategory
Attributes: ID, DocCategoryName

Table: Document
Attributes: ID, DocName, ProfessorID (secondary), ClassID (secondary), DocCategoryID (secondary)

Может ли кто-нибудь указать мне правильное направление запроса, чтобы я получил отчет, содержащий:

списоквсе имя профессора со вторым столбцом, содержащим количество документов в таблице документов, относящихся к этому профессору?

Заранее спасибо!

1 Ответ

4 голосов
/ 10 ноября 2010

Использование:

  SELECT p.professorname,
         COUNT(*) AS numDocuments
    FROM PROFESSOR p
    JOIN DOCUMENT d ON d.professorid = p.id
GROUP BY p.professorname

Чтобы увидеть список всех профессоров - у тех, у кого нет документов, будет указано нулевое значение - используйте:

   SELECT p.professorname,
          COALESCE(COUNT(d.id), 0) AS numDocuments
     FROM PROFESSOR p
LEFT JOIN DOCUMENT d ON d.professorid = p.id
 GROUP BY p.professorname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...