現在、データベースに2つのテーブルがあります。 1つはApplicants
、もう1つはProgrammeDetail
です。 ProgrammeDetail
では、私はminimum required applicant
をキャプチャします。したがって、プログラムにApplicant
にサインアップすると、ProgrammeID
に関連付けられます。SQL文WHERE句
しかし、INNERJOIN
とWHERE
節を使用してSQL文を実行すると、エラーが発生していました。サンプルデータと
programmeDetailテーブル:表のサンプルデータと
-------------------------------------------
| programmeID | programmeRequirement |
-------------------------------------------
| P01 | 20 |
-------------------------------------------
申請者:
-----------------------------------
| applicantID | programmeID |
-----------------------------------
| A001 | P01 |
-----------------------------------
| A002 | P01 |
-----------------------------------
所望の出力:
-------------------------------------------
| programmeID | programmeRequirement |
-------------------------------------------
| P01 | 20 |
-------------------------------------------
のみ2応募FOがありますのでr P01
、最低要件は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.
a)テーブル構造、b)サンプルデータ、c)希望する出力を表示してください。この質問は現在不明です。 –
どこでエイリアスを使用する必要はありませんか? –
また、あなたが得ているエラーを置く。不明 – ScanQR