【问题标题】:SQL Query for division equivalent in relational algebra关系代数中除法等价的 SQL 查询
【发布时间】:2023-03-07 09:35:01
【问题描述】:

以下是我的表格,

员工(枚举,etitle,ename), pk:枚举

有(枚举,anum), pk:(枚举,anum), fk1:Has(enum)->Staff(enum), fk2:Has(anum)->面积(anum)

区域(anum,aname), pk:anum

问题:

专门研究每个医疗领域的员工(枚举、姓名、姓名)。

我已经尝试了以下,

我知道这个查询的关系代数表达式是

将(员工加入有)除以(项目面积超过 anum)

我的 SQL 查询如下:

select S.enum
from Staff S
where not exists
(select A.anum from Area A)
minus
(select H.anum 
from Has H,Staff S1
where H.enum = S1.enum)

但没有返回任何行。我确保有一名工作人员专攻各个领域。

我认为应该做的事情:

每个工作人员的面积必须从所有面积中减去。如果存在具有所有医疗领域的工作人员,则减法将返回空集,并且将满足不存在。然后我们必须检索特定工作人员的 enum,ename,etitle。

注意:

这是我的作业。我很努力之后才发这个。

【问题讨论】:

    标签: sql oracle10g relational-algebra


    【解决方案1】:
    select * from Staff 
    where enum in (
        select enum from (
            select enum, count(distinct anum) as number_of areas
            from Has group by enum
        ) where number_of areas = (select count(*) from Area)
    );
    
    1. 为每个枚举计算唯一区域的数量。
    2. 检查该数字是否等于整个区域数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多