遗憾的是,我已经在大约100个表中传播了一些数据,而且我没有时间重新组织它,所以我很好奇我如何在这么多表中执行选择总和(column_name)。
我找到了如何对2个表进行求和的示例,但绝不是100个示例。
有人知道吗?
附录:使用非常大的命令导致“内存耗尽”错误。有没有办法用LIKE做到这一点?
答案 0 :(得分:0)
这将是一个大问题,但这样的事情会这样做:
SELECT SUM(col) FROM (
SELECT col FROM table1
UNION ALL
SELECT col FROM table2
UNION ALL
SELECT col FROM table3
...
SELECT col FROM table100
) a
答案 1 :(得分:0)
我想说最简单的方法是对你想要求和的值做很多选择(每个表一个),然后对它的并集做一个求和?
类似的东西:
SELECT SUM(VALUE) FROM (
select 1 VALUE
UNION
select 2 VALUE
UNION
select 3 VALUE) as DATA
当然,选择将从每个表中选择一个列,而不仅仅是这样的整数,但你明白了......
答案 2 :(得分:0)
您似乎对LIKE
感到困惑,但LIKE
适用于WHERE
条款,而不是选择要选择的表格。如果同时从所有表中选择对于您的系统来说太多了,那么显而易见的解决方案是单独查询每个表,然后使用perl / php / other脚本添加结果。
答案 3 :(得分:0)
您可以这样做:
select sum(sumcol) FROM (
select sum(col) as sumcol from table1
union all
select sum(col) as sumcol from table2
union all
select sum(col) as sumcol from table3
...
union all
select sum(col) as sumcol from table100
);
当您在联合部件中进行总结时,这样做的内存消耗要少得多。