提前感谢您阅读本文。我不太擅长 SQL,所以请原谅任何愚蠢的错误......
这是交易,我有四个表(为了简单起见,我只给出基本字段和表之间的依赖关系):
- 公司:公司标识、公司名称
- 用户:userId、userName
- 项目:projectId、projectUserId、projectCompanyId、projectDate
- 研究:studyProjectId
依赖关系是这样的:
- 项目针对客户 (projectUserId) 并由公司执行 (projectCompanyId)
- 同一个项目可以有多个研究,但每个研究针对一个项目 (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 等于研究总数。如果我COUNT
从 中删除SELECT
,那么我会得到我想要的结果类型,但没有列numberStudies
(当然)。希望你明白我想要得到什么,我在这里做错了什么?
再次提前感谢:)
编辑:如果可能的话,我希望请求显示记录,即使numberStudies
是 0。