我被要求在一个简单的员工数据库列上为此创建一个查询,包括:
ninumber - 名字 - 姓氏 - 地址 - SuperVisorNiNumber
员工和主管都保存在同一张表中,并通过他们的编号进行引用。我被要求构建的查询是:
v. 查找员工的 NI 号码、员工的名字和姓氏以及主管的 NI 号码,其中员工共享该主管并且员工和主管都在部门工作 8. 您将在实践 2 的查询 vi 中两次引用员工关系. 您的结果应显示在标题为“员工 NI 号码”、“名字”、“姓氏”和“主管 NI 号码”的列中。
因此我创建了这个查询:
SELECT e1.ninumber,
e1.fname,
e1.minit,
e1.lname,
e1.address,
e1.superNiNumber,
COUNT(*) AS nrOfOccurences
FROM employee AS e1,
employee AS e2
WHERE e1.dno = 8
AND e1.superNiNumber = e2.ninumber
AND e2.dno = 8
GROUP BY e1.superNiNumber
HAVING COUNT(*) > 1
我无法做一个不明确的查询来解决问题的这一部分 - “员工在哪里共享该主管”。此查询返回行分组,这又隐藏了我想要显示的一些行。
我的问题是:我的查询对于该问题是否正确?我可以在 mySQL 中执行非 DISTINCT 查询以使数据库返回所有字段而不是将它们分组在一起。
返回我的查询结果
NInumber fname minit lname address supervisorNiNum number of occerences
666666601 Jill J Jarvis 6234 Lincoln, Antrim, UK 666666600 2
666666607 Gerald D Small 122 Ball Street, Letterkenny, IRL 666666602 3
666666604 Billie J King 556 WAshington, Antrim, UK 666666603 2
Thanks.