gpt4 book ai didi

SQL 练习 - 似乎无法解决这个问题

转载 作者:行者123 更新时间:2023-11-29 14:16:09 30 4
gpt4 key购买 nike

我对手动编写 SQL 查询还很陌生,而且我有一个我似乎无法解决的练习。

我了解解决此问题所需的工具,但我就是想不出解决方案。

你能帮助我理解如何以一种能让我在未来解决类似练习的方式解决这个问题吗?

我有以下表格:

CREATE TABLE Employee (
Eid SERIAL primary key,
Ename character varying(30) NOT NULL,
salary integer DEFAULT 0 NOT NULL
);

CREATE TABLE Project (
Pid SERIAL primary key,
Pname character varying(30) NOT NULL,
requiredWorkers integer DEFAULT 0 NOT NULL
);

CREATE TABLE workson (
Eid integer references Employee(eid),
Pid integer references Project(pid),
Primary Key (Eid,Pid)
);

练习:

多个项目可能具有相同的名称(但 Pid 不同)。返回员工的 eids,他们所从事的所有项目都精确地同名。仅返回至少从事一个项目的员工。

最佳答案

您可以使用例如 NOT EXISTS

select distinct w1.eid
from Project p1
join workson w1 on p1.pid = w1.pid
where not exists(
select 1
from Project p2
join workson w2 on p2.pid = w2.pid
where w1.eid = w2.eid and p2.pname != p1.pname
)

另一种解决方案是使用GROUP BYHAVING

select w.eid
from Project p
join workson w on p.pid = w.pid
group by w.eid
having count(distinct p.pname) = 1

关于SQL 练习 - 似乎无法解决这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47463234/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com