|
我被要求在一个简单的员工数据库上创建查询,包括:
5 ]/ b, o, D: w# Mninumber-名字-姓氏-地址-SuperVisorNiNumber# Y8 y( T3 ~4 J3 \8 d& p
员工和主管都在同一张桌子上,并根据他们的号码引用。我要求构建的查询是:
" [1 I) U Z2 v/ ev。查找NI编号、员工姓名、姓名、主管与主管共享的主管NI以及部门8中员工和主管的工作。您将查询实践2vi两次引用员工关系。您的结果应显示在带有以下标题的列中:员工NI编号、姓氏、姓氏、主管、NI编号”。
/ M- w7 w2 Y4 Q因此,我创建了以下查询:6 T7 ]# \( K3 _
SELECT e1.ninumber, e1.fname, e1.minit, e1.lname, e1.address, e1.superNiNumber, COUNT(*) AS nrOfOccurencesFROM employee AS e employee AS e2WHERE e1.dno = 8 AND e1.superNiNumber = e2.ninumber AND e2.dno = 8GROUP BY e1.superNiNumberHAVING COUNT(*) > 1我无法进行明确的查询来解决问题-员工在哪里分享主管。该查询返回行的分组,隐藏了我想展示的一些行。) x5 O2 }. s0 Z" L7 N! g: m$ E+ V
我的问题是:我的查询是否正确,是否可以mySQL中执行NON DISTINCT将数据库返回到所有字段,而不是将其分组。+ m$ J& _) y$ M" [) q# m
从我的查询中查询结果
$ d( L: I, T) R/ f" P1 `NInumber fname minit lname address supervisorNiNum number of occerences666666601 Jill J Jarvis 6234 Lincoln,Antrim,UK 2666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666Gerald D Small 122 Ball Street,Letterkenny,IRL 3666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666Billie J King 556 WAshington,Antrim,UK 666666603 2谢谢。
* }2 _/ N2 S' M* ` O ~! r 7 F* t1 E5 k4 L5 T& Y5 k
解决方案:
3 L6 q0 \4 V5 j 在你的结果表中,我看不到minit,address and number of occurrences。因此,我将简化您的选择:' I1 Y$ L. B* {% ?
SELECT e1.ninumber, e1.fname, e1.lname, e1.superNiNumber,FROM employee AS e employee AS e2WHERE e1.dno = 8 AND e1.superNiNumber = e2.ninumber AND e2.dno = 8 and (select count(*) from employee e3 3 where e3.superNiNumber = e1.superNiNumber) > 1; |
|