Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何转换旧SQL?_Sql_Sql Server_Performance - Fatal编程技术网

如何转换旧SQL?

如何转换旧SQL?,sql,sql-server,performance,Sql,Sql Server,Performance,我正在将不推荐使用的SQL(*=)转换为左联接。以下SQL语句是否等效?性能会得到改善吗 旧的 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

我正在将不推荐使用的SQL(*=)转换为左联接。以下SQL语句是否等效?性能会得到改善吗

旧的

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;

您的新查询不正确

转换后的版本将为:

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
两个查询将执行相同的操作。第一种是老式的


如果帖子回答了问题,请“标记为答案”

您的新查询不正确

转换后的版本将为:

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
两个查询将执行相同的操作。第一种是老式的


如果帖子回答了问题,请“标记为答案”

旁注:为什么不“转换”内部连接,这样就不会混合样式?添加了内部连接。新查询与旧查询等效吗?旁注:为什么不“转换”内部联接,这样就不会混合样式?添加了内部联接。新查询是否等同于旧查询?