select子句中的内联查询与where子句中的连接之间的差异

时间:2014-08-25 10:46:44

标签: sql oracle

有什么区别:

select e.first_name,
       e.last_name,
       e.id,
       d.dept_name
from employees e, departments d
where e.department_id = d.department_id;

select e.first_name,
       e.last_name,
       e.id,
       (select d.dept_name frpm departments d where d.department_id = e.department_id) dept_name    
from employees e;

我说的是性能,查询时间,CPU利用率等方面的差异。 哪一个更好用?

1 个答案:

答案 0 :(得分:0)

第一个作为inner join;返回的行是两个表中具有匹配ID的行。

虽然第二个会给你NULL,以防子选择中没有共享的部门ID,但它仍然会给你主选择的结果