【发布时间】:2014-10-18 12:02:47
【问题描述】:
有什么区别:
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:1,则会出现错误。根据比赛的运作方式,排名第一的可能会给您更多或更少的员工数量。如果您设置了 FK,则不必担心,但请注意,它们可能根本不会给您相同的结果。