【发布时间】:2015-11-28 06:06:41
【问题描述】:
我的架构如下:
EMPLOYEE (fmane, 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)
我想查找那些不参与位于芝加哥的任何项目的经理的姓氏和 SSN。
注意:我把原来的问题修改为练习SQL,所以我把经理改成了员工
这是我目前所拥有的:
select e.lname
from Employee e
where e.ssn not in
(select w.essn
from works_on w, Project p
where w.pno = p.pnumber
and p.plocation = 'Cleveland')
所以基本上我的修改正确吗?还有
我需要写 e.lname 还是只写 lname,因为人们告诉我如果只有一个项目我可以简单地使用 lname?
使用 NOT IN 子句时最令人困惑的部分,我如何知道何时应该使用 e.ssn 或 ssn?
谢谢
【问题讨论】:
标签: sql database select join notin