繁体   English   中英

MySQL SELECT MAX()查询

[英]MySQL SELECT MAX() query

我有一个transactiontable,可在其中插入交易,还保存每笔交易的当前总计(或余额)。 我的表如下所示:transactiontable

在此处输入图片说明

这里,

  • transaction_id是唯一的主键
  • user_id_1是我的PHP文件通过POST收到的user_id
  • user_id_2是与user_id_1进行交易的朋友的ID
  • transaction_code是0(表示收款)(减少current_total)和1(表示赠款(增加current_total))
  • transaction_status 1表示已确认交易

我想使用选择操作为给定user_id的每个朋友检索最新的总数。 上表中的user_id_1 ='26'这样的内容:

user_id_2 current_total
1         375  
27        350

到目前为止,我已经想到了这一点,但是它没有按预期工作:

select user_id_2, current_total from transactiontable where user_id_1 = '$user_id' and (transaction_id=(SELECT MAX(transaction_id)) and transaction_status = '1')

您可以使用GROUP BY子句查找最高的ID,然后将其与原始表连接

像这样:

SELECT user_id_2, current_total 
    FROM transactiontable 
    INNER JOIN (
        SELECT MAX(transaction_id) AS maxID 
        FROM transactiontable 
        WHERE user_id_1 = '26' 
        AND transaction_status = '1' GROUP BY user_id_2 
    ) AS m 
    ON transaction_id=maxID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM