我是SQL的新手,并尝试使用两个表Employee和Department解决此问题。我希望显示' HR'的所有员工的姓名。和'销售'部门。 表格为员工(emp_id,emp_name,dept_id)和部门(dept_id,dept_name)。
谢谢!
答案 0 :(得分:3)
试试这个:
Select e.emp_name from
Employee e inner join Department d
on e.dept_id = d.dept_id
Where d.dept_name in ('HR','Sales');
此查询将比较dept_id
表和Employee
表的Department
。将返回匹配的值。然后,在所有字段中,您将选择emp_name
并使用HR
条款限制属于Sales
和where
部门的员工。
答案 1 :(得分:2)
由于您只想显示员工数据,因此只能从该表中进行选择。其余的是标准。您希望他们的部门成为“HR”或“Sales”,因此编写此部分的直接方式是IN子句(您也可以使用EXISTS子句):
select emp_name
from employee
where dept_id in
(
select dept_id
from department
where dept_name in ('HR', 'Sales')
);
我认为这比首先加入表更容易阅读,只使用一个作为另一个的过滤器。
答案 2 :(得分:1)
select Employee.emp_name [Emplyee Name] from Employee inner join Department on Department.dept_id=Emplyee.emp_id where Department.dept_name='HR'
答案 3 :(得分:0)
你可以这样,
SELECT [emp_name] FROM [dbo].[Employee] AS E
INNER JOIN [dbo].[Department] AS D
ON D.dept_id=E.dept_id
WHERE D.dept_name='HR' OR D.dept_name='Sales'