第12题: [简答题]有如下两个关系表: Emp(eid,ename,age,did,salary),其各列含义为职工号、姓名、年龄、部门号、工资。 Dept(did,dname,mgr_id),其各列含义为部门号、部门名称、部门经理职工号。 写出一条SQL语句,查询工资大于10000,且与他所在部门的经理年龄相同的职工姓名。 参考答案:SELECT e1.ename FROM Emp AS e1,Emp AS e2,Dept WHERE e1.salary>10000 AND Dept.mgr_1d=e2.eid AND e1.age=e2.age AND e1.did=e2.did AND Dept.mgr_id<>e1.eid 如果需要显示部门经理的信息,则去掉最后一个条件。 答案解析:[解析] 本查询是涉及两张表的组合查询。由于部门经理信息也存储在职工表中,查询与所在部门的部门经理年龄相同的职工姓名需要用到自连接,物理上只有一张职工表,而逻辑上可将职工表(Emp)分为两张表,一张表