Mysql 列出员工项目
我制作了以下表格: 表1(职位名称) 表2(发展) 表3(工作人员) 表4(软件) 我希望能够列出担任Mysql 列出员工项目,mysql,sql,Mysql,Sql,我制作了以下表格: 表1(职位名称) 表2(发展) 表3(工作人员) 表4(软件) 我希望能够列出担任软件开发人员工作的员工的姓名,以及他们每个人完成了多少开发软件项目,顺序从最小到最大 大概是这样的: FirstName | LastName| Project Count John Smith 3 Fraser Morgan 1 SELECT DISTINCT FirstName, LastName, COUNT(*) AS numProjects
软件开发人员
工作的员工的姓名,以及他们每个人完成了多少开发软件项目,顺序从最小到最大
大概是这样的:
FirstName | LastName| Project Count
John Smith 3
Fraser Morgan 1
SELECT DISTINCT FirstName, LastName, COUNT(*) AS numProjects
FROM Staff
INNER JOIN Development ON Staff.StaffID = Development.StaffID
INNER JOIN JobTitle ON Development.JobTitleID = JobTitle.JobTitleID
WHERE JobName = 'Software Developer'
GROUP BY FirstName, LastName;
其他信息:
- JobTitleID是表
JobTitle
的PK
和表Development
的PFK
- StaffID是表
Staff
的PK
和表Development
的PFK
- SoftwareID是表
Software
的PK
和表Development
的PFK
- 这三个表:
职务、软件、员工
,每个表都具有与开发
相关的一对多关系李>
我一直在尝试这样的事情:
FirstName | LastName| Project Count
John Smith 3
Fraser Morgan 1
SELECT DISTINCT FirstName, LastName, COUNT(*) AS numProjects
FROM Staff
INNER JOIN Development ON Staff.StaffID = Development.StaffID
INNER JOIN JobTitle ON Development.JobTitleID = JobTitle.JobTitleID
WHERE JobName = 'Software Developer'
GROUP BY FirstName, LastName;
是否有一种方法可以实现查询工作,从而解决我的问题
任何hep都将不胜感激。尝试使用以下选项:
SELECT DISTINCT Staff.FirstName, Staff.LastName, COUNT(Development.StaffID) AS numProjects
FROM Staff
INNER JOIN Development ON Staff.StaffID = Development.StaffID
INNER JOIN JobTitle ON Development.JobTitleID = JobTitle.JobTitleID
WHERE JobTitle.JobName = 'Software Developer'
GROUP BY FirstName, LastName
输出:
FirstName - LastName - numProjects
John - Smith - 3
Fraser - Morgan - 1
将count(*)
替换为count(不同的软件ID)
应该可以。而且不需要在选择后使用distinct键请尝试以下操作:
SELECT FirstName, LastName,
COUNT(*) AS numProjects
FROM Staff, Development, JobTitle
WHERE JobName = 'Software Developer'
AND Staff.StaffID = Development.StaffID
AND Development.JobTitleID = JobTitle.JobTitleID
GROUP BY StaffID;
FirstName - LastName - numProjects
John - Smith - 3
Fraser - Morgan - 1
SELECT FirstName, LastName,
COUNT(*) AS numProjects
FROM Staff, Development, JobTitle
WHERE JobName = 'Software Developer'
AND Staff.StaffID = Development.StaffID
AND Development.JobTitleID = JobTitle.JobTitleID
GROUP BY StaffID;