SQL语句WHERE子句
问题描述:
我目前在我的数据库中有两个表。一个是Applicants
,另一个是ProgrammeDetail
。在ProgrammeDetail
,我捕获了minimum required applicant
。因此,当Applicant
注册一个计划时,他们将被绑定到ProgrammeID
。SQL语句WHERE子句
但是,当我做我的SQL语句时,使用INNERJOIN
和WHERE
子句,我不断收到错误。
programmeDetail表的示例数据:
-------------------------------------------
| programmeID | programmeRequirement |
-------------------------------------------
| P01 | 20 |
-------------------------------------------
申请人与样本数据表:
-----------------------------------
| applicantID | programmeID |
-----------------------------------
| A001 | P01 |
-----------------------------------
| A002 | P01 |
-----------------------------------
希望的输出:
-------------------------------------------
| programmeID | programmeRequirement |
-------------------------------------------
| P01 | 20 |
-------------------------------------------
因为只有2申请人FO最低要求是20名申请人。因此P01
将被检索。
这是我已经试过:
SELECT *
FROM programmeDetail pD
INNER JOIN applicant appl
ON pD.programmeID = appl.programmeID
WHERE COUNT(appl.applicantID) < pD.programmeRequirement
错误:
is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY clause.
答
尝试用下面,我已经与MySQL试图将其与所需的输出工作。我只在结果中添加了需要的列。
SELECT pD.programmeID
pD.programmeRequirement
FROM programmeDetail pD
INNER JOIN applicant appl
ON pD.programmeID = appl.programmeID
GROUP BY pd.programmeID
HAVING COUNT(*) < 20
请显示a)表格结构,b)样本数据,和c)您的期望输出。这个问题目前还不清楚。 –
你不需要在别的地方使用别名吗? –
也把你得到什么错误。不清楚。 – ScanQR