【发布时间】:2019-11-30 00:46:01
【问题描述】:
我正在使用多个 MySQL 选择查询来获取结果。第一个查询的输出是第二个查询的输入,像这样,我使用了 15 个(当时 15 个查询)。因为我想在第 15 阶段之前得到结果。
当我执行所有这些查询时,需要花费太多时间才能获得输出,例如,产生结果需要超过 15 到 20 分钟。
基本上,我的代码中有 15 个级别,我正在计算每个级别的总数,这就是为什么我为每个级别使用 1 个查询。所以总级别是15,我的MySql查询是15。
我有一个数据库表,其中有 4 列-
ID, MemberID, SponseredID, Amount.
我准备了查询来计算每个级别的金额之和。
您可以查看以下代码:
SELECT SUM(amt) as level1
FROM adm
WHERE sid='MT00001';
SELECT SUM(amt) as level2
FROM adm
WHERE sid IN (SELECT mid
FROM adm
WHERE sid='MT00001');
SELECT SUM(amt) as level3
FROM adm
WHERE sid IN (SELECT mid
FROM adm
WHERE sid IN (SELECT mid
FROM adm
WHERE sid='MT00001'));
SELECT SUM(amt) as level4
FROM adm
WHERE sid IN (SELECT mid
FROM adm
WHERE sid IN (SELECT mid
FROM adm
WHERE sid IN (SELECT mid
FROM adm
WHERE sid='MT00001')))
直到第 4 级,这 4 个查询也需要太多时间来执行。
我得到了结果,但是执行所有 15 个查询需要花费太多时间,大约需要 15 分钟。
【问题讨论】:
-
你用的是什么版本的 MySQL?
-
我使用的是 MySQL 5.5
-
@Kms 链接用于 sql server
-
@manishsharma 你期待什么样的结果集?
-
@James- 我的问题类似于下面的链接,但我没有得到预期的结果。 stackoverflow.com/questions/41913460/…
标签: php mysql sql database database-design