带有JOIN和WHERE子句

时间:2015-07-10 06:19:17

标签: mysql

我是SQL的新手,并尝试使用两个表Employee和Department解决此问题。我希望显示' HR'的所有员工的姓名。和'销售'部门。 表格为员工(emp_id,emp_name,dept_id)部门(dept_id,dept_name)

谢谢!

4 个答案:

答案 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条款限制属于Saleswhere部门的员工。

答案 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'
相关问题