我有一个拍卖系统的出价表:

投标书

id user_id   bid   auction_id
1    3        1        1
2    4        2        1
3    4        1        1
4    3        3        1
5    3        2        1
6    3        2        1


我需要在给定的拍卖中为给定的用户获得最高的用户出价(考虑到用户可能根本没有出价,该出价之和直到该用户做出的最后出价)。

例如:

for user id=3, highest bid would be 11.
for user id=4, highest bid would be 4.
for user id=6, highest bid would be 0. (user didn't make any bids)


到目前为止,我有这个查询:

SELECT COALESCE( SUM( bid ), 0 ) as highest_bid
FROM BIDS
WHERE user_id = 3
AND auction_id = 1


但是仅返回该用户所做的所有所有出价的总和,我需要直到该用户做出的最后一个出价的总和。

我希望我有道理。

谢谢!

最佳答案

尝试这个。本质上,我为每个用户获取了max_id并获取了该max_id之前的总和。

我还没有测试过。

SELECT
  user_id,
  (SELECT sum(bid)
   FROM BIDS
   WHERE id <= max_ids.id)
FROM
  (SELECT
     max(id) AS id,
     user_id
   FROM BIDS
   GROUP BY user_id) max_ids

关于php - mysql从表中获得用户最高出价,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48939655/

10-10 22:07