自然连接查询 - SQL(postgresql)

时间:2017-11-27 13:44:52

标签: sql postgresql

我是SQL新手,我遇到以下问题: 鉴于HR的以下关系:

员工(Eid,Ename,薪水)

项目(Pid,Pname,required Workers)

WorksOn(Eid,Pid)

我想要返回员工的Eids,因为他们工作的所有项目都具有相同的名称(考虑到几个项目可能具有相同的名称但不同的Pids)。我想只返回至少在一个项目上工作的员工。

我正在尝试这个:

SELECT DISTINCT t1.Eid
FROM (Employee NATURAL JOIN WorksOn NATURAL JOIN Project) AS t1, (Employee NATURAL JOIN WorksOn NATURAL JOIN Project) AS t2
EXCEPT 
SELECT DISTINCT t1.Eid
FROM (Employee NATURAL JOIN WorksOn NATURAL JOIN Project) AS t1, (Employee NATURAL JOIN WorksOn NATURAL JOIN Project) AS t2
WHERE t1.Pname <> t2.Pname
ORDER BY t1.Eid ASC

没有成功。我尝试的一切都给了我不同的错误。

你知道我该怎么办?

非常感谢。

0 个答案:

没有答案