Mysql PHPSReadSheet查询长度是否有任何限制?
我已经创建了一些PHPSReadSheet“报告”文件,所有这些都运行良好。我已经创建了第三个,现在遇到了一个问题,脚本没有完成运行,现在我想知道PHP电子表格读取嵌套查询的方式是否有限制 我首先从头开始创建脚本,就像其他所有脚本一样,然后让它在夜间运行,但是脚本在经过一段时间后超时,就像我使用的PHP/Mysql设置一样 接下来,我试着运行我现有的一个脚本,它工作得很好,就像以前一样 最后,我将一个脚本从另一个报告复制到当前脚本中,并测试是否存在模板错误,这也会按预期运行 我还在MySQL workbench中只运行了查询,查询在10秒内返回结果 SQLFiddle: 我添加了我拥有的查询并删除了嵌套表,只是为了给出查询本身的视图Mysql PHPSReadSheet查询长度是否有任何限制?,mysql,timeout,xlsx,phpspreadsheet,Mysql,Timeout,Xlsx,Phpspreadsheet,我已经创建了一些PHPSReadSheet“报告”文件,所有这些都运行良好。我已经创建了第三个,现在遇到了一个问题,脚本没有完成运行,现在我想知道PHP电子表格读取嵌套查询的方式是否有限制 我首先从头开始创建脚本,就像其他所有脚本一样,然后让它在夜间运行,但是脚本在经过一段时间后超时,就像我使用的PHP/Mysql设置一样 接下来,我试着运行我现有的一个脚本,它工作得很好,就像以前一样 最后,我将一个脚本从另一个报告复制到当前脚本中,并测试是否存在模板错误,这也会按预期运行 我还在MySQL w
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的链接。希望我做对了。