如何转换旧的SQL?

时间:2016-05-03 19:54:11

标签: sql sql-server performance

我正在将弃用的SQL(* =)转换为Left Join。以下SQL语句是否等效?性能会提高吗?

OLD

SELECT n.name, 
   n.address, 
   e.email, 
   e.title,
   m.car,
   l.type      
  FROM name n, 
   employee e, 
   miscellaneous m,
   lifestyle l      
 WHERE n.id = 3 
 AND n.id = e.id   
 AND n.id *= m.id 
 AND n.id *= l.id; 

SELECT n.name, 
   n.address, 
   e.email, 
   e.title,
   m.car,
   l.type      
  FROM name n, 
   employee e, 
   miscellaneous m,
   lifestyle l
Inner Join empId ON n.id = e.id  
Left Join miscId ON n.id = m.id    
Left Join lifeId ON n.id = l.id;

1 个答案:

答案 0 :(得分:5)

您的新查询不正确。

转换后的版本将是:

SELECT n.NAME
    , n.address
    , e.email
    , e.title
    , m.car
    , l.type
FROM NAME n
INNER JOIN employee e ON n.id = e.id
LEFT JOIN miscellaneous m ON n.id = m.id
LEFT JOIN lifestyle l ON n.id = l.id;

WHERE n.id = 3

两个查询都将执行相同的操作。第一个是旧式。

请"标记为答案"如果帖子已回答问题