为什么该语句单独起作用,但是当它是子查询的一部分时却说无效使用组函数

select count(cid)
  from qualification q
       inner join faculty f
           on q.fid=f.fid
           where fname='Berry'
group by
       f.fid;


我将如何修改它以适合子查询?

整个查询-

select fid, fname from faculty
where fid in
(select fid from qualification where count(cid)=
    (select count(cid) from qualification q inner join faculty f on
    q.fid=f.fid where fname='Berry' group by f.fid));


逻辑:列出可以教授Berry教授可以教授的所有课程的所有教职员工的姓名和姓名

最佳答案

对我来说,问题是在count()中使用WHERE

where count(cid)=
(select count(cid) from qualification q inner join faculty f on
q.fid=f.fid where fname='Berry' group by f.fid)


您可以尝试将其更改为像这样处理

HAVING count(cid)=
(select count(cid) from qualification q inner join faculty f on
q.fid=f.fid where fname='Berry' group by f.fid)


但我不明白逻辑。如果您解释更多,我们将建议一个更好的解决方案

关于mysql - 为什么在子查询中时此MySQL语句不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22681402/

10-11 08:54