Mysql PHPSReadSheet查询长度是否有任何限制?

Mysql PHPSReadSheet查询长度是否有任何限制?,mysql,timeout,xlsx,phpspreadsheet,Mysql,Timeout,Xlsx,Phpspreadsheet,我已经创建了一些PHPSReadSheet“报告”文件,所有这些都运行良好。我已经创建了第三个,现在遇到了一个问题,脚本没有完成运行,现在我想知道PHP电子表格读取嵌套查询的方式是否有限制 我首先从头开始创建脚本,就像其他所有脚本一样,然后让它在夜间运行,但是脚本在经过一段时间后超时,就像我使用的PHP/Mysql设置一样 接下来,我试着运行我现有的一个脚本,它工作得很好,就像以前一样 最后,我将一个脚本从另一个报告复制到当前脚本中,并测试是否存在模板错误,这也会按预期运行 我还在MySQL w

我已经创建了一些PHPSReadSheet“报告”文件,所有这些都运行良好。我已经创建了第三个,现在遇到了一个问题,脚本没有完成运行,现在我想知道PHP电子表格读取嵌套查询的方式是否有限制

我首先从头开始创建脚本,就像其他所有脚本一样,然后让它在夜间运行,但是脚本在经过一段时间后超时,就像我使用的PHP/Mysql设置一样

接下来,我试着运行我现有的一个脚本,它工作得很好,就像以前一样

最后,我将一个脚本从另一个报告复制到当前脚本中,并测试是否存在模板错误,这也会按预期运行

我还在MySQL workbench中只运行了查询,查询在10秒内返回结果

SQLFiddle:

我添加了我拥有的查询并删除了嵌套表,只是为了给出查询本身的视图

SELECT 
    CALLING.StoreCode       AS  'STORE CODE'
,   CALLING.RouteCode           AS  'ROUTE CODE'
,   CALLING.ScheduledActionDate AS  'SCHEDULED ACTION DATE'
,   CALLING.ActualVisitedDate   AS  'ACTUAL VISIT DATE'
,   CALLING.CycleEndDate        AS  'CYCLE END DATE'
,   CALLING.CallingDay      AS  'CALLING DAY'
,   CASE 
        WHEN OUTEXCLUSIONS.ExcludedDate IS NOT NULL THEN 0
        WHEN EXCLUSIONS.ExcludedDate IS NOT NULL THEN 0 
        ELSE 1
    END             AS  'OUTLET CALLING STATUS' 
,   CALLING.UserName        AS  'USERNAME'
,   CALLING.Week            AS  'WEEK'
,   CASE 
    WHEN OUTEXCLUSIONS.ExcludedDate IS NOT NULL THEN OUTEXCLUSIONS.ExcludedDate
    WHEN EXCLUSIONS.ExcludedDate IS NOT NULL THEN EXCLUSIONS.ExcludedDate 
        ELSE NULL
    END             AS  'EXCLUSION DATE'

,   CASE 
    WHEN OUTEXCLUSIONS.ExcludedDate IS NOT NULL THEN OUTEXCLUSIONS.LeaveDescription
    WHEN EXCLUSIONS.ExcludedDate IS NOT NULL THEN EXCLUSIONS.LeaveDescription 
        ELSE NULL
    END             AS  'EXCLUSION DESCRIPTION'

FROM 

(SELECT 
    CALLCYCLES.StoreCode
,   CALLCYCLES.ScheduledActionDate
,   VISTED.ActualVisitedDate
,   CALLCYCLES.CycleEndDate
,   CALLCYCLES.CallingDay
,   VISTED.UserName
,   CALLCYCLES.RouteCode
,   CALLCYCLES.Week
,   CALLCYCLES.Requestable
FROM
    (
    NESTED QUERY JOINIG TO ANOTHER NESTED QUERY TO REPLICATE AN FULL JOIN IN MYSQL
    )   AS CALLCYCLES
LEFT JOIN
    (
    NESTED QUERY JOINIG TO ANOTHER NESTED QUERY TO REPLICATE AN FULL JOIN IN MYSQL
    )   VISTED
ON
    CALLCYCLES.StoreCode = VISTED.StoreCode
AND CALLCYCLES.CycleEndDate = VISTED.CycleEndDate

UNION ALL (UNIONING THE TWO NESTED QUERIES)

SELECT
    CALLCYCLES.StoreCode
,   CALLCYCLES.ScheduledActionDate
,   VISTED.ActualVisitedDate
,   CALLCYCLES.CycleEndDate
,   CALLCYCLES.CallingDay
,   VISTED.UserName
,   CALLCYCLES.RouteCode
,   CALLCYCLES.Week
,   CALLCYCLES.Requestable
FROM
    (
    NESTED QUERY JOINIG TO ANOTHER NESTED QUERY TO REPLICATE AN FULL JOIN IN MYSQL
    )   AS CALLCYCLES
RIGHT JOIN
    (
    NESTED QUERY JOINIG TO ANOTHER NESTED QUERY TO REPLICATE AN FULL JOIN IN MYSQL
    )   AS VISTED
ON
    CALLCYCLES.StoreCode = VISTED.StoreCode
AND CALLCYCLES.CycleEndDate = VISTED.CycleEndDate
WHERE CALLCYCLES.StoreCode IS NULL

)       AS CALLING

LEFT JOIN

    (JOINING TO REFERENCE TABLE 1)      AS EXCLUSIONS
ON
    CALLING.RouteCode = EXCLUSIONS.RouteCode
AND CALLING.ScheduledActionDate = EXCLUSIONS.ExcludedDate


LEFT JOIN

    (JOINING TO REFERENCE TABLE 2)      AS OUTEXCLUSIONS
ON
    CALLING.RouteCode = OUTEXCLUSIONS.RouteCode
AND CALLING.ScheduledActionDate = OUTEXCLUSIONS.ExcludedDate
AND CALLING.StoreCode = OUTEXCLUSIONS.StoreCode

不幸的是,除了超时之外,没有错误代码,脚本将继续运行直到超时。

这是一个非常痛苦的查询。我很想从头开始(或者至少简单一点),看看我们是否能做到这一点。为此,请看@草莓同意这是一个相当痛苦的问题。但遗憾的是,对于数据设置,没有其他方法可以在没有所有嵌套联接的情况下获得结果。谢谢,我现在将阅读您添加的链接。好吧,既然您已经确定该查询在MySQL中工作,也许可以从中构造一个视图,然后从中选择。我也尝试了视图选项。然后直接从视图中选择。我正忙于构建SQL Fiddle,但我只能看到8000个字符。我想提供足够的示例数据,以便从查询中获得结果。因此,只需处理数据即可获得最佳结果。添加了指向sqlfiddle的链接。希望我做对了。