mysql - 如何通过在 MySQL 中使用 ID 来确定某一行是否是最后一行

标签 mysql sql

很抱歉让您对我的标题感到困惑。我正在构建一个拍卖系统,但我很难获得用户的中奖元素。

例如我有一个这样的表:

enter image description here

列是: 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;

Check Demo Here

关于mysql - 如何通过在 MySQL 中使用 ID 来确定某一行是否是最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38865880/

相关文章:

MySQL 在每个字段周围使用单引号加载数据

java - JFrame 中的 DefaultTableModel 仅在行上创建 - JAVA

mysql - 计算数百万行的不同值——适合 NoSQL 吗?

php - 在保存到数据库之前预测 future 使用的 ID

php - 多个 MySQL 输入

sql - 在同一列上有 FK 和 PK?基数/SQL

sql - 将 Excel 电子表格连接到 SQL 数据库

java - 注册期间生成唯一 ID

mysql - 从相关表中选择最大值

java - ISO-8859-1、UTF-8 和西类牙语口音