如何连接两个表以获得合并结果
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'
两者 table 都有基于部门编号的关系。
例如:
员工Table:
Fname salary unitno Dno
Angel 2000 5 2
Jame 1000 3 2
Khalid 1500 6 4
Khalid 2500 9 2
部门Table:
Dnumber Name
2 IT
2 IT
4 Development
2 IT
现在两人table恋爱了。我的查询没有使用 Dno 和 Dnumber 来连接它们并找到准确的结果。我需要在这里使用 JOIN 吗?我怎么知道哪个是左边 table 哪个是右边 table?
使用内部连接不需要左或右
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')
)
我正在尝试编写一个查询,我正在检索员工数据、fname、薪水和单位编号,其中 fname 是 'Khalid',他的部门名称应该是 'IT' 或 'Development'.
我将查询写成
Select fname, salary, unitno from Employee Where fname = Khalid and Department.name = 'IT' or 'Development'
两者 table 都有基于部门编号的关系。
例如:
员工Table:
Fname salary unitno Dno
Angel 2000 5 2
Jame 1000 3 2
Khalid 1500 6 4
Khalid 2500 9 2
部门Table:
Dnumber Name
2 IT
2 IT
4 Development
2 IT
现在两人table恋爱了。我的查询没有使用 Dno 和 Dnumber 来连接它们并找到准确的结果。我需要在这里使用 JOIN 吗?我怎么知道哪个是左边 table 哪个是右边 table?
使用内部连接不需要左或右
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')
)