子选择引用与初始加载相同表的SQL速度较慢

子选择引用与初始加载相同表的SQL速度较慢,sql,db2,odbc,Sql,Db2,Odbc,我可以同时加载多个表: Simple DISTINCT SELECT Table1.Val1, Table2.Val2, Table1.Val3,... FROM Table1/2/3 WHERE Table2.KEYVAL = TABLE1.KEYVAL AND TABLE3.KEYVAL = TABLE2.KEYVAL some WHERE's on Table 1,2,3 在我的主Select语句中还有一些子Select和第四个表,它们工作得又快又好 现在我想计算表3中一个值的和(我

我可以同时加载多个表:

Simple DISTINCT SELECT Table1.Val1, Table2.Val2, Table1.Val3,... 
FROM Table1/2/3 
WHERE Table2.KEYVAL = TABLE1.KEYVAL
AND TABLE3.KEYVAL = TABLE2.KEYVAL
some WHERE's on Table 1,2,3
在我的主Select语句中还有一些子Select和第四个表,它们工作得又快又好

现在我想计算表3中一个值的和(我们称之为权重)。 表3结果有多行(子ID),但共享同一个键

我怎样才能做到这一点

如果我在主选择中放置子选择:

(SELECT Sum(weight) 
FROM Table3
WHERE Table3.KEYVAL = Table1.KEYVAL
) as Wheight
它变得很丑很慢

当我想使用LeftJoin来表示表3.weight时,(主)表3.weight和(子选择)表3.weight之间(或sql)有什么区别


主选择中的Sum(weight)不直接起作用,我认为这是因为它不是独立的?

我认为您必须在子查询中使用groupby函数

例如:

Select a.*, b.*
  from mytable as a
  join (select keyval, sum(weight) from my_second_table group by keyval) as b  
    on a.keyval = b.keyval

谢谢汤姆的格式化!我已将SQL放入PowerShell脚本中。。并将第四个表作为哈希表加载,这样我就可以将它们粘合在一起。我还没有找到别的捷径。。到目前为止…
选择表4中的键,按键分组求和(值)