很抱歉让你对我的头衔感到困惑。我正在建立一个拍卖系统,我有一个困难,以获得用户的获奖项目。
我有一张这样的桌子:
列为:
id,产品id,用户id,状态,是赢家,信息,竞价,竞价日期
这是我的sql小提琴:
http://sqlfiddle.com/#!9/7097d/1
我想得到每个用户的项目,他们已经赢了。所以我需要确定他们是不是最后一个投标的。
我需要用用户id过滤它。
如果我这样查询:
SELECT MAX(product_id) AS product_id FROM auction_product_bidding
WHERE user_id = 3;
它将只得到12的产品id,而9的产品id没有得到。产品ID 9也是用户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;