MySQL SELECT MAX()查询

时间:2017-10-28 05:09:50

标签: android mysql max

我有一个交易表,我在其中插入交易并保存每笔交易的当前总额(或余额)。我的表看起来像这样: 交易表

enter image description here

在这里,

  • 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表示已确认的交易

我想使用select操作检索给定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')

1 个答案:

答案 0 :(得分:0)

您可以使用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