回答

收藏

MySQL中的NOT DISTINCT查询

技术问答 技术问答 85 人阅读 | 0 人回复 | 2023-09-12

我被要求在一个简单的员工数据库上创建查询,包括:
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;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则