我在SQL中执行请求时遇到了一些麻烦。
我的表格看起来像这样
id | storeID | dateDone | paidSum
我需要发出一个请求,让我可以像这样制作一个html表
date | store One | store Two | store Tree
08/12 | 2000 | 6000 | 1000
08/13 | 100 | 90 | 10000
所以数组看起来应该是这样的
[
"08/12" => [
"total" => 9999,
"byPlace" => [
"1" => 800,
"2" => 777,
.....
]
],
....
]
这可以在一个SQL请求中完成,还是我必须继续使用foreach循环(这需要花费很长的时间来加载)?
数据库包含+ 10k条目。我使用的是MariaDB
答案 0 :(得分:0)
这里有两件事。
按日期和商店分组很简单。
SELECT SUM(paidSum) total,
DATE(dateDone) dateDone,
StoreId
FROM table
GROUP BY DATE(dateDone), StoreId
ORDER BY 1, 2
这为您提供了一个结果集,每个日期和商店都有一行。它将在单个查询中生成您需要的所有内容,从而删除子查询。
将商店显示为列涉及转动结果集。在MySQL中进行透视是一个臭名昭着的痛苦,在php或其他应用程序中通常更容易做到。