mySQL:获取一行的其余部分';使用';最大值';

mySQL:获取一行的其余部分';使用';最大值';,mysql,Mysql,我有一张桌子看起来有点像这样: user_id item_id bid_amount 5 12 22 6 12 47 7 12 40 6 14 55 我正在尝试为每个项目和属于该出价的用户id获取最高出价。我目前的尝试: select user_id, max(bid_amount) from bids group by item_id; 失败得相当惊人。我想这只是

我有一张桌子看起来有点像这样:

user_id   item_id   bid_amount
5         12        22
6         12        47
7         12        40
6         14        55
我正在尝试为每个项目和属于该出价的用户id获取最高出价。我目前的尝试:

select user_id, max(bid_amount) from bids group by item_id;
失败得相当惊人。我想这只是组中第一行的用户id——有没有一个查询可以得到我想要的数据

SELECT user_id, item_id, bid_amount FROM bids 
WHERE (item_id, bid_amount) IN (
   SELECT item_id, MAX(bid_amount) FROM bids GROUP BY item_id
)

在线查看它的工作情况:

如果有两个或两个以上的用户对一个项目有相同的出价,该怎么办?或者这是不可能的?这是不可能的,所以您的解决方案可以正常工作--非常感谢。现在我需要做一些思考,这样我才能理解它为什么会工作。以前从未见过sqlfiddle——非常好!