SQL语句错误

rai*_*ain 1 sql oracle

打印仅通过巡航范围超过1000公里的飞机认证的员工姓名.

SELECT E.ename
FROM Employees E, Certified C, Aircraft A
WHERE C.aid = A.aid AND E.eid = C.eid
GROUP BY E.eid, E.ename
HAVING EVERY (A.cruisingrange > 1000)
Run Code Online (Sandbox Code Playgroud)

Oracle缺乏对该HAVING EVERY子句的支持会产生错误

ORA-00907: missing right parenthesis
Run Code Online (Sandbox Code Playgroud)

怎么解决?

sag*_*agi 5

而不是每一个,选择最小的一个,并检查它大于1000

SELECT E.ename
FROM Employees E
INNER JOIN Certified C ON  E.eid = C.eid
INNER JOIN Aircraft A ON C.aid = A.aid
GROUP BY E.ename
HAVING MIN(A.cruisingrange) > 1000
Run Code Online (Sandbox Code Playgroud)

正如Gordon所说,我忘了提及,我将连接语法从隐式(逗号分隔)修改为显式连接语法.尝试避免使用通常的隐式连接语法,这会在处理两个以上的表时导致错误.