2011-12-14 47 views
3
任何HAVING

我试图找到谁只管理部门的预算超过100万的大经理的enames,但至少有一个部门与预算超过500万另一种方式来写天天都在mysql的

我少理解查询应该像这样工作,但不能让它在Mysql中运行。我猜是因为Every和Any在MySQL中不起作用。有没有其他的方法来写这个?另外这里的架构

Emp(eid: integer, ename: string, age: integer, salary: real) 
Works(eid: integer, did: integer, pct_time: integer) 
Dept(did: integer, dname: string, budget: real, managerid: integer) 

这里是查询:

select 
    e.ename 
from 
    emp e, dept d 
where 
    e.eid=d.managerid 
group by 
    e.eid, e.ename 
having 
    every(d.budget>1000000) and 
    any(d.budget<5000000); 
+1

您正在使用隐式连接 - 注意,马丁·史密斯是使用显式连接。 – 2011-12-14 12:59:05

回答

3
SELECT e.ename 
FROM emp e 
     JOIN dept d 
     ON e.eid = d.managerid 
GROUP BY e.eid, 
      e.ename 
HAVING MIN(d.budget) > 1000000 
     AND MIN(d.budget) < 5000000; 
+0

我没有找回正确的结果池。我收回一个空集。 – user964381 2011-12-14 13:01:24

相关问题