これを読んでくれてありがとう。私はSQLが得意ではないので、愚かな間違いを許してください...
これが取り引きです、私は4つのテーブルを持っています(簡単にするために、基本的なフィールドとテーブル間の依存関係のみを示します):
- 会社: companyId、companyName
- ユーザー: userId、userName
- プロジェクト: projectId、projectUserId、projectCompanyId、projectDate
- スタディ: studyProjectId
依存関係は次のようになります。
- プロジェクトはクライアント (projectUserId) 向けであり、会社 (projectCompanyId) によって実行されます。
- 同じプロジェクトに多数のスタディが存在する可能性がありますが、各スタディは 1 つのプロジェクト (studyProjectId) 用です。
これは私が書きたい種類のリクエストですが、現在は機能しません。
SELECT
project.projectId,
company.companyName,
user.userName,
COUNT( study.studyId ) AS numberStudies
FROM project, company, user, study
WHERE company.companyId = project.projectCompanyId,
AND user.userId = project.projectUserId,
AND study.studyProjectId = project.projectId
ORDER BY company.companyId, user.userId, project.projectDate;
numberStudies がスタディの総数と等しい 1 つのレコードを返します。COUNT
からを削除するとSELECT
、必要なタイプの結果が得られますが、列はありませんnumberStudies
(もちろん)。私が取得しようとしていることを理解してほしいのですが、ここで何が間違っていますか?
よろしくお願いします:)
編集: 可能であれば、numberStudies
が 0 の場合でもレコードを表示するように要求したいと思います。