在用户向他的帐户添加资金后,我使用下面的 mysql 查询将数据从 oldtable 插入到 newtable 中。如果用户将一些钱存入他的帐户,我想输入 accbal 列的值作为信用列值和 accbal (用户旧帐户余额)的总和。即我想在调整借方贷方金额后添加具有用户帐户结果余额的 mysql 行。请告诉我如何使用 mysql 和 php 来做到这一点。
$sql2="INSERT INTO newtable (emailadd, credit, debit, accbal, txtime, txnid) SELECT buyeremailaddr, 'balcredit', '0', QUESTION, pptxtime, pptxid FROM oldtable WHERE paymenthash='$item_no' AND paid='1'";
$result2=mysql_query($sql2);
最佳答案
这可能比您需要的更复杂,但是当您尝试将相关记录中的值与最近的日期链接起来时,它会变得很棘手:
INSERT INTO newtable (
emailadd
, credit
, debit
, accbal
, txtime
, txnid
) SELECT buyeremailaddr
, 'balcredit'
, '0'
, credit + accbal
, pptxtime
, pptxid
FROM oldtable
LEFT JOIN (
SELECT emailadd,accbal FROM newtable JOIN (
SELECT emailadd
,MAX(txtime) AS maxdate
FROM newtable GROUP BY emailadd
) AS mt ON mt.maxdate = newtable.txtime
AND mt.emailadd = newtable.emailadd GROUP BY emailadd
) AS nt ON oldtable.buyeremailaddr = nt.emailadd
WHERE paymenthash='$item_no'
AND paid='1'
本质上,您加入了按电子邮件分组的新表,该新表又再次按电子邮件分组自身,以便将 txtime 与最大 txtime 进行比较,以获得最新的 accbal 值。警告:这对于非常大的表来说不能很好地扩展。更好地创建 View ,甚至更好地重新评估现有的数据结构
关于php - 如何将数据从其他表插入新表并对两列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46086877/