2013-05-01 66 views
-1

我有兩個SQL數據庫/關係模式如下:使用SQL和關係代數

Employee(eid, name, office) 
Manager(eid, mid) 

我想獲得在SQL以下信息。我也想知道等價關係代數是什麼

  • 所有員工2+經理
  • 所有員工沒有經理誰擁有名爲Alice的員工的所有管理人員的
  • 辦事處。
+1

你試過了什麼?發佈您嘗試過的以及遇到問題的地方,我們很樂意提供幫助。聽起來像一個家庭作業,雖然... – sgeddes 2013-05-01 23:53:42

回答

1

我假設eid是Employee中的主鍵。

SELECT e.eid 
FROM Employee e INNER JOIN Manager m ON e.eid = m.eid 
GROUP BY e.eid 
HAVING COUNT(*) >= 2 


SELECT * 
FROM Employee e 
WHERE NOT e.eid IN (SELECT eid FROM Manager) 


SELECT e2.office 
FROM Employee e 
     INNER JOIN Manager m ON e.eid = m.eid 
     INNER JOIN Employee e2 ON m.mid = e.eid 
WHERE e.name = 'Alice' 
GROUP BY e2.office 
+3

你可以做我的作業嗎?之後,我有一個應用程序寫有人想支付我$$$ - 如果我發佈的要求,你會這樣做嗎? – 2013-05-02 00:10:29

+0

如果您認爲此問題不當,請投票結束。不要因爲試圖幫助而攻擊我。 – 2013-05-02 00:53:52

+0

如果我一直在攻擊,我會低估。我沒有。我只是評論說,有時候張貼代碼來回答,沒有海報做出努力來做自己的工作並不總是最好的做法。如果你願意做所有的工作,我願意爲你提供更多的幫助,以便我無所作爲並從中受益。 :-)假設一個「我除了複製和粘貼代碼之外什麼也不教你」這個問題的「事實並非如此」,而是讓一個明顯的作業問題回答了這個問題,並且允許這個海報作弊以獲得未知等級。除了你(代表)以外,誰還能受益? – 2013-05-02 01:04:10