簡體   English   中英

關系代數中除法的SQL查詢

[英]SQL Query for division equivalent in relational algebra

以下是我的表格,

職員(枚舉,標題,名字),pk:枚舉

Has(枚舉,anum),pk :(枚舉,anum),fk1:Has(枚舉)-> Staff(枚舉),fk2:Has(anum)->面積(anum)

面積(anum,aname),pk: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)

但是沒有行被返回。 我確保在每個領域都有一名專門研究人員。

我認為應該做的是:

必須從所有區域中減去每個工作人員的區域。 如果存在具有所有醫療領域的工作人員,則減法將返回空集,並且將滿足不存在的情況。 然后,我們必須檢索特定工作人員的枚舉,名稱,標題。

注意:

這是我的作業。 我很努力地發布了這個。

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. 檢查此數字是否等於區域總數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM