2015-10-20 41 views
0

我有两个表employeeemployee_salaryOracle加入表并获取数据,即使数据存在于第二个表中

select * from employee where branch_id = '001'; 

select * from employee_salary where branch_id = '001'; 

select * 
from employee a, 
    employee_salary b 
where a.branch_id = '001' and a.empno = b.empno; 

在第三个sql中,我需要从employee表中获取值,即使employee_salary中没有值。

我该怎么做?

+1

使用明确LEFT JOIN – Mihai

+1

这是很好的做法,始终做到明确连接。如果需要的话,那些很容易转换为左连接。 – jarlh

回答

3

使用左连接(无论检索来自员工表中的行,如果他们在employee_salary或不匹配):

select * 
from employee a 
left join employee_salary b 
on a.empno = b.empno 
where a.branch_id = '001'; 
+2

@Mihai,希望我在这里不要错过什么,但是where条件适用于员工表(a),所以它不应该进行这种转换。 –

+0

'和'没有'where'永远不会给出预期的结果 – Utsav

相关问题