我是SQL新手,試圖用兩張表Employee和Department來解決這個問題。我想顯示'HR'和'Sales'部門所有員工的姓名。 表是員工(emp_id,emp_name,dept_id)和部門(dept_id,dept_name)。帶有JOIN和WHERE子句的SQL語句
謝謝!
我是SQL新手,試圖用兩張表Employee和Department來解決這個問題。我想顯示'HR'和'Sales'部門所有員工的姓名。 表是員工(emp_id,emp_name,dept_id)和部門(dept_id,dept_name)。帶有JOIN和WHERE子句的SQL語句
謝謝!
試試這個:
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');
這個查詢將比較Employee
表和Department
表dept_id
。那些匹配的值將被返回。那麼在所有字段中,您將選擇emp_name
並使用where
子句限制屬於HR
和Sales
部門的員工。
謝謝兄弟!那個工作我實際上與這個問題中的'where'子句混淆了。謝謝 – user2439492
非常歡迎:)做upvote並接受答案如果有用:) –
對不起,再次打擾你,實際上我試圖用不同的scnerios來探索問題,但用同樣的表格,並遇到一些不同類型的問題。 如何顯示擁有10多個employess的所有部門名稱。 謝謝! – user2439492
select Employee.emp_name [Emplyee Name] from Employee inner join Department on Department.dept_id=Emplyee.emp_id where Department.dept_name='HR'
由於您只想顯示員工數據,只能從該表中選擇。其餘的是標準。你希望自己的部門是「人力資源」或「銷售」,所以寫這IN子句(你也可以使用EXISTS子句)的直接的方式:
select emp_name
from employee
where dept_id in
(
select dept_id
from department
where dept_name in ('HR', 'Sales')
);
我覺得這是更易於閱讀比首先加入表格,只使用一個作爲另一個的過濾器。
你可以得到這樣的,
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'
下一次,你應該表現出自己的一些努力。肯定有你自己的一些想法,因爲某些原因沒有工作。或者你甚至沒有嘗試*任何*? –
就像我寫的,我在這裏詢問之前試過這些問題。我會在下次記住你的指示。不管怎樣,謝謝! – user2439492