【发布时间】:2023-03-18 04:47:02
【问题描述】:
员工可以在多个部门工作,每个部门可以有很多员工。因此需要一个关系表
表格:
EMP(eid,ename,eage,esalary)
作品(eid,did,pct_time)
Dept(did,dname,budget, managerid)
查找所有从事软件和硬件工作的员工:
SELECT e.ename FROM EMP e, Works w, Dept d
WHERE e.eid = w.eid AND w.did = d.did AND d.did =
(SELECT did FROM dept WHERE dname = 'Hardware' OR 'Software')
按照乔恩的说法:
SELECT e.ename FROM EMP e OR Works w OR Dept d
WHERE e.eid = w.eid AND w.did = d.did AND d.did =
(SELECT did FROM dept WHERE dname = 'Hardware' OR 'Software')
而且我只是不知道如何确保 Works 中有两个条目用于同一 eid 下的硬件和软件。
【问题讨论】:
-
您的
FROM Emp e OR Works w OR Dept d语法是对标准SQL 表示法的创新。我担心您使用的 DBMS 可能会对语法产生异常并拒绝您的 SQL 语句。
标签: sql