2010-11-10 95 views
2

我有一個包含以下各表MySQL數據庫:加入語句的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) 

有人點我在查詢正確的方向,使我得到含有報道:

列表所有教授姓名都帶有第二列,其中包含與該教授有關的文件表中的文件計數?

提前致謝!

回答

4

用途:

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 
+0

多數民衆贊成在完美!有一件事,它只是顯示教授姓名與文件,是否有一個聲明,我可以添加顯示「0」旁邊的沒有關係? – r0m4n 2010-11-10 04:17:38

+0

@ r0m4n:查看更新。 – 2010-11-10 04:19:47

+0

謝謝,救了我! – r0m4n 2010-11-10 04:25:24