在mysql中改进此查询的更好方法

13 浏览
0 Comments

在mysql中改进此查询的更好方法

我想从不同的表中获取不同列的总和,我已经做了类似下面这样的操作,但我认为在mysql中有更好的方法。

select 
sum(sal) as sal_tp from budget_tp, 
sum(sal) as sal_veri from budget_fos_veri,
sum(sal) as sal_pick from budget_fos_picks,
sum(sal) as sal_bpo from budget_bpo_other;

0
0 Comments

在MySQL中改进这个查询的更好方法

在这个问题中,出现的原因是希望从多个表中选择多个列,并进行求和操作。但是目前的查询语句无法实现这个需求,导致出现了错误提示"Operand should contain 1 column(s)"。

解决方法是使用子查询来实现从多个表中选择多个列,并进行求和操作。可以参考stackoverflow上的解决方案,在子查询中使用多个列的方式来实现这个需求。例如:

SELECT 
    (SELECT sum(sal) AS sal_tp, sum(local_conv) AS lc_tp FROM budget_tp),
    (SELECT sum(sal) FROM budget_fos_veri) AS sal_veri,
    (SELECT sum(sal) FROM budget_fos_picks) AS sal_pick,
    (SELECT sum(sal) FROM budget_bpo_other) AS sal_bpo;

通过使用子查询,可以从多个表中选择多个列,并进行求和操作,从而解决了原始查询语句无法实现的问题。这样就可以得到所需的结果,而不会再出现错误提示。

0