我正在尝试找出这种情况的最佳做法。 我有多个数据库,我想在列上总结它们。可以是一个数据库,也可以是中间的全部或任何给定数字。 商店(数据库)由php数组提供。
最好的做法是在php循环中运行每个数据库查询并通过php添加值吗?我已经开始这样做了,如下所示。
请注意,下面的查询适用于一个数据库,该连接只是该数据库上的另一个表。
我到目前为止的查询和php函数是这个
function getPeriodDateTransactions ($database, $date, $date2, array $stores) {
$username = 'root';
$password = '***';
foreach ($stores as $store_db){
$dsn = 'mysql:host=localhost;dbname='.$store_db;
$db = new PDO($dsn, $username, $password);
$statement = $db->prepare("
SELECT tr.SoldDate, SUM(tr.TotalAmount) - IFNULL(rebuy.RebuySum, 0) as SumByReceipt,
COUNT(DISTINCT(tr.`ForsNr`)) as TotalCustomers, IFNULL(rebuy.RebuySum, 0) RebuySum
FROM transactions tr
LEFT JOIN (
SELECT SoldDate, SUM(TotalAmount) as RebuySum
FROM transactions_rebuy
WHERE SoldDate BETWEEN '$date' AND '$date2'
GROUP BY SoldDate
) as rebuy
ON tr.SoldDate= rebuy.SoldDate
WHERE tr.SoldDateBETWEEN '$date' AND '$date2'
GROUP by tr.SoldDate
ORDER by tr.SoldDate DESC");
$statement->execute();
$row = $statement->fetchALL(PDO::FETCH_ASSOC);
}
return json_encode($row, TRUE);
}
非常感谢您对此的意见。
为了澄清,我希望得到与一个数据库完全相同的结果,但是为每个数据库添加(汇总)所有总和