php - 如何将数据从其他表插入新表并对两列求和

标签 php mysql

在用户向他的帐户添加资金后,我使用下面的 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/

相关文章:

php - 如何使用可点击链接 ID 分组连接行

mysql - 有没有 JSON_TABLE 的替代方案?

mysql - 子选择的 SQL 聚合函数太慢

php - PHP 中的 Preg_replace

php - CURL PHP 发送图像

Javascript无法运行表单的幻灯片效果

mysql - 无法获取数据库中每个模型名称的最后上传日期数据

php - 用数据库记录填充文本区域

PHP更新数据到mysql( undefined variable 的错误)

php - codeigniter 检索从 View 传递到 Controller 的参数值