使用临时表或嵌套选择从多个表中检索数据?

时间:2014-04-01 06:22:24

标签: sql tsql

我有一个类似于下面的查询,其中数据是从多个表中检索的。问题是如果这个表要检索多个数据......这个过程肯定会更好或更有效地使用嵌套选择或临时表来优化我的选择语句...我应该如何分组我的连接...

 Select a.Name,
    b.type,
    c.color,
    d.group,
    e.location
    f.quantity
    g.cost
from Table1 a 
INNER JOIN Table2 b ON a.ID=b.ItemCode
INNER JOIN TABLE3 c ON b.ItemCOde = c.groupID
INNER JOIN TABLE4 d ON c.groupID  = d.batchID
LEFT JOIN TABLE5 e ON d.batchID = e.PostalID
LEFT JOIN TABLE6 f ON e.PostalID = f.CountID
LEFT JOIN TABLE7 g ON f.CountID = g.InventoryNo 

2 个答案:

答案 0 :(得分:0)

这可能有效.. !!!

Select a.Name,b.type,c.color,d.group,e.locationf.quantity,g.cost
from Table1 a,Table2 b,TABLE3 c,TABLE4 d,TABLE5 e,TABLE6 f,TABLE7 g
where a.ID=b.ItemCode,b.ItemCOde = c.groupID,c.groupID  = d.batchID,
      d.batchID =     e.PostalID,
      e.PostalID = f.CountID,f.CountID = g.InventoryNo;

答案 1 :(得分:0)

  1. 加入的顺序可能很重要:从最具选择性的表开始,继续使用选择性最少的表。

  2. 嵌套查询与临时表:它是旧的困境,没有“神奇”的解决方案。在某些情况下,临时表可以提高性能。事实是:每个查询都是不同的故事。尝试使用解决方案并分析查询执行计划。