我被要求在一个简单的员工数据库列上为此创建一个查询,包括:
ninumber - 名字 - 姓氏 - 地址 - SuperVisorNiNumber
员工和主管都在同一个表中,并由他们的 ninumber 引用。我被要求构建的查询是:
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 中执行 NON 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
谢谢。