这两个查询是否相同?

时间:2015-03-28 08:00:29

标签: sql

这两个查询是否相同?

查询#1

select 
    e.last_name, e.first_name, d.department_name, l.city
from 
    employees e
inner 
    join departments d on e.department_id = d.department_id
inner join  
    locations l on  d.location_id = l.location_id;

查询#2

select 
    e.last_name, e.first_name, d.department_name, l.city
from 
    employees e, departments d, locations l
where 
    e.department_id = d.department_id 
    AND d.location_id = l.location_id;

1 个答案:

答案 0 :(得分:0)

这两个查询可能会返回相同的数据 - 但#2查询使用以逗号分隔的表列表的旧的,已弃用的样式。不要这样做 - 改为使用查询#1的正确的 ANSI JOIN语法。

以逗号分隔的表样式列表已替换为 ANSI-92 SQL标准中的正确ANSI JOIN语法(超过 20年前)及其使用气馁。坚持查询#1风格。