在sql练习中查找表中的链接
所以我被困在这个问题上,它说: 编写一个查询,以按字母顺序检索所有部门的列表,其中包含列DEPARTMENT_ID、DEPARTMENT_NAME、LAST_NAME、FIRST_NAME,其中LAST_NAME和FIRST_NAME是部门经理的姓名,只要有 我正在使用部门、员工表建立人力资源数据库,到目前为止我写的是:在sql练习中查找表中的链接,sql,oracle11g,Sql,Oracle11g,所以我被困在这个问题上,它说: 编写一个查询,以按字母顺序检索所有部门的列表,其中包含列DEPARTMENT_ID、DEPARTMENT_NAME、LAST_NAME、FIRST_NAME,其中LAST_NAME和FIRST_NAME是部门经理的姓名,只要有 我正在使用部门、员工表建立人力资源数据库,到目前为止我写的是: select department_id, department_name, e.last_name, e.first_name from departments d, emp
select department_id, department_name, e.last_name, e.first_name
from departments d, employees e
where e.department_id=d.department_id
and d.department_id=e.department_id
and d.manager_id=e.manager_id
having department_name = '%Manager%';
但是我不明白,任何提示都会有帮助的,谢谢 having子句与group by有关。如果没有GROUPBY,having子句就没有意义 您只需要加入即可为经理在employees表中获取记录
select department_id, department_name, e.last_name, e.first_name
from departments d, employees e
where d.manager_id=e.id
更好的方法是使用较新的联接语法
select dept.department_id, dept.department_name, emp.last_name, emp.first_name
from departments dept
inner join employees emp on dept.manager_id = emp.id
e.department\u id=d.department\u id和d.department\u id=e.department\u id不需要条件(一方面,这些条件是多余的,因此只有在需要时才需要条件),因为employees.department\u id字段指的是员工所在的部门,而您需要的是该部门的经理员工记录。部门的经理员工记录表示为员工表主键的外键。这可能有助于您
`select e.first_name,e.last_name,d.department_id ,d.department_name from employees e,departmets d where d.manager_id=e.employee_id order by d.department_name;`
你忘了“字母顺序”(按部门名称排序):)我看不出哪里需要工会。内部联接提供了您想要的内容。@user2145903:Dude…您需要打印部门详细信息和经理姓名,这样经理详细信息(公司员工的)存储在员工表中,简单地说,我根据经理id将这两个表从department表连接到employee表中的employee,这样我们就可以访问经理的相应详细信息。