很抱歉让您对我的标题感到困惑。我正在构建一个拍卖系统,但我很难获得用户的中奖元素。
例如我有一个这样的表:
列是: id, product_id, user_id, status, is_winner, info, bidding_price, bidding_date
这是我的 sql fiddle : http://sqlfiddle.com/#!9/7097d/1
我想获得每个用户已经赢得的元素。所以我需要确定他们是否是最后一个对该项目出价的人。 我需要使用 user_id 对其进行过滤。
如果我做这样的查询:
SELECT MAX(product_id) AS product_id FROM auction_product_bidding
WHERE user_id = 3;
只会获取到12的product_id,没有获取到9的product_id。产品 ID 9 也是 user_id 3 的最后出价。
你能帮帮我吗?我希望你明白我的意思。谢谢。对不起,如果我的问题有点困惑。
最佳答案
根据你的问题,11似乎也是你想要的,试试这个查询:
SELECT apd.product_id
FROM auction_product_bidding apd
JOIN (
SELECT MAX(bidding_date) AS bidding_date, product_id
FROM auction_product_bidding
GROUP BY product_id
) t
ON apd.product_id = t.product_id
AND apd.bidding_date = t.bidding_date
WHERE apd.user_id = 3;
关于mysql - 如何通过在 MySQL 中使用 ID 来确定某一行是否是最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38865880/