【发布时间】:2016-02-19 11:58:35
【问题描述】:
数据库:
EMPLOYEE (fname, minit, lname, ssn, birthdate, address, sex, salary, superssn, dno) KEY: ssn
DEPARTMENT (dname, dnumber, mgrssn, mgrstartdate) KEY: dnumber.
PROJECT (pname, pnumber, plocation, dnum) KEY: pnumber.
WORKS_ON (essn, pno, hours) KEY: (essn, pno)
DEPENDENT (essn, dependent-name, sex, bdate, relationship) KEY: (essn, dependent-name)
我想使用left outer join 和group by 来...
查找从事 3 个或更多项目且不在克利夫兰的经理的姓氏和 SSN。
这是我目前所拥有的:
select Lname
from Employee e outer join Department d
where (e.ssn = d.mgrssn)
and ssn NOT in (
select w.essn
from works_on w outer join Project p
where w.pno = p.pnumber
and p.plocation = 'Cleveland'
group by w.essn
having count(*) >= 3
)
我使用left outer join 和group by 做对了吗?我应该把这段代码分成两部分,比如循环吗?
【问题讨论】:
-
outer join不是 sql 连接类型。有LEFT outer join和RIGHT outer join和FULL outer join。此外,所有这些都需要一个on子句(或using子句)。 -
对不起,我的意思是左外连接,你能写一个答案吗?
-
我保证我会接受的,真的迷路了
-
使用左外连接
-
那么如果项目在克利夫兰,员工就在克利夫兰?
标签: mysql sql database group-by outer-join