我有一个SQL语句
SELECT COUNT(appl.applicantID)
FROM course_Batch pD
INNER JOIN applicant appl ON pD.programmeID = appl.programmeID
GROUP BY pD.programmeID
因此,在我的applicant
表格中,我有2个申请人与record
中的course_Batch
相关联。
但是,当我使用上面粘贴的那个SQL语句时,我得到4.因为在我的course_Batch
表中,我在1 programme ID
下有多个记录。
ProgrammeDetail
表:
-------------------------------------------
| programmeID | programmeRequirement |
-------------------------------------------
| P01 | 20 |
| P01 | 20 |
-------------------------------------------
带有示例数据的 Applicant
表:
-----------------------------------
| applicantID | programmeID |
-----------------------------------
| A001 | P01 |
| A002 | P01 |
-----------------------------------
有没有办法实现这个目标?
---------------------------------------------------------------
| programmeID | programmeRequirement | applicantCount |
---------------------------------------------------------------
| P01 | 20 | 2 |
---------------------------------------------------------------
答案 0 :(得分:1)
使用INNER JOIN
。它会给出您的预期结果
SELECT
programmedetail.programmeID,
programmedetail.programmeRequirement,
COUNT(
DISTINCT (applicant.applicantID)
) AS applicantCount
FROM
programmedetail
INNER JOIN applicant ON programmedetail.programmeID = applicant.programmeID
GROUP BY
programmedetail.programmeID,
programmedetail.programmeRequirement;
点击以下链接,您可以在实时中看到您想要的预期结果。