-1

我有两个 SQL 数据库/关系模式,如下所示:

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

我想在 SQL 中获取以下信息。我也想知道等价的关系代数是什么

  • 拥有 2 名以上经理的所有员工
  • 所有没有经理的员工
  • 拥有名为 Alice 的员工的所有经理的办公室。
4

1 回答 1

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
于 2013-05-02T00:05:04.360 回答