簡體   English   中英

如何連接兩個表以獲得合並結果

[英]How to join two tables to get combined result

我正在嘗試編寫一個查詢,在其中檢索員工數據、fname、薪水和單位編號,其中 fname 是“Khalid”,他的部門名稱應該是“IT”或“Development”。

我將查詢寫為

Select fname, salary, unitno from Employee Where fname = Khalid and Department.name = 'IT' or 'Development'

兩個表都具有基於部門編號的關系。

例如:

員工表:

Fname salary unitno Dno
Angel 2000   5      2
Jame  1000   3      2
Khalid 1500  6      4
Khalid 2500  9      2

部門表:

Dnumber Name
2       IT
2       IT 
4       Development
2       IT 

現在這兩個表處於關系中。 我的查詢沒有使用 Dno 和 Dnumber 來連接它們並找到准確的結果。 我需要在這里使用 JOIN 嗎? 我怎么知道哪個是左表,哪個是右表?

使用內部連接不需要左或右

Select fname, salary, unitno 
from Employee 
inner join Department 
on Dno=Dnumber 
Where fname = 'Khalid' and
(name = 'IT' or name='Development')
-- or your could write : name in ('IT','Development')

您還可以使用子查詢,如下所示:

Select fname, salary, unitno 
from Employee 
Where fname = 'Khalid' and Dno in (
select Dnumber from Department where name = 'IT' or name='Development')

您可以加入和篩選:

select e.fname, e.salary, e.unitno, d.name
from employee e
inner join department d on d.dnumber = e.dno
where e.fname = 'Khalid' and d.name in ('IT', 'Development')

或者,如果不需要顯示部門名稱,也可以使用相關子查詢進行過濾:

select e.fname, e.salary, e.unitno 
from employee e
where e.fname = 'Khalid' and exists (
    select 1 from department d where d.dnumber = e.dno and d.name in ('IT', 'Development')
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM