Mysql 结果按一列分组,并根据第二列的最大值显示不同的行
用户表:Mysql 结果按一列分组,并根据第二列的最大值显示不同的行,mysql,sql,Mysql,Sql,用户表: id | name 1 | sai 2 | krishna 投标表格: bid_id | listing_id | user_id | bid_amount 1 | 999 | 1 | 100 2 | 999 | 2 | 200 3 | 999 | 2 | 300 所以我希望得到的结果是 bid_id | listing_id | bid_amount | name 1 | 999 | 100 | sai 3 | 999
id | name
1 | sai
2 | krishna
投标表格:
bid_id | listing_id | user_id | bid_amount
1 | 999 | 1 | 100
2 | 999 | 2 | 200
3 | 999 | 2 | 300
所以我希望得到的结果是
bid_id | listing_id | bid_amount | name
1 | 999 | 100 | sai
3 | 999 | 300 | krishna
其中,我希望结果按listing\u id
分组,但仅为bid\u amount
为max的用户显示不同的行,该用户有一个派生表(子查询),返回每个列表的最高出价。加入该结果并加入用户:
SELECT COALESCE(b1.bid_id, -1),
COALESCE(b1.listing_id, -1),
COALESCE(b1.bid_amount, 0),
u.name
FROM user u
LEFT JOIN bid b1
ON u.id = b1.user_id
LEFT JOIN
(
SELECT user_id, MAX(bid_amount) AS bid_amount
FROM bid
GROUP BY user_id
) b2
ON b1.user_id = b2.user_id AND
b1.bid_amount = b2.bid_amount
select b1.bid_id, b1.listing_id, b2.bid_amount, u.name
from bid b1
join (select listing_id, max(bid_amount) as max_bid_amount
from bid
group by listing_id) b2
on b1.listing_id = b2.listing_id and b1.bid_amount = b2.max_bid_amount
join user u on b.user_id = u.id
有一个派生表(子查询),返回每个列表的最高出价。加入该结果并加入用户:
select b1.bid_id, b1.listing_id, b2.bid_amount, u.name
from bid b1
join (select listing_id, max(bid_amount) as max_bid_amount
from bid
group by listing_id) b2
on b1.listing_id = b2.listing_id and b1.bid_amount = b2.max_bid_amount
join user u on b.user_id = u.id
这应该做到:
SELECT bid.bid_id, bid.listing_id, bid.bid_amount, users.name
FROM bid bid
INNER JOIN user users ON bid.user_id = users.id
INNER JOIN (SELECT MAX(bid.bid_amount) AS MaxBid, bid.user_id
FROM bid bid
GROUP BY bid.user_id
) MaxBids ON bid.bid_amount = MaxBids.MaxBid
这应该做到:
SELECT bid.bid_id, bid.listing_id, bid.bid_amount, users.name
FROM bid bid
INNER JOIN user users ON bid.user_id = users.id
INNER JOIN (SELECT MAX(bid.bid_amount) AS MaxBid, bid.user_id
FROM bid bid
GROUP BY bid.user_id
) MaxBids ON bid.bid_amount = MaxBids.MaxBid
您使用的是哪种数据库管理系统?(答案可能取决于产品。)mysql dbms 5.x版本您使用的是哪种dbms?(答案可能取决于产品。)mysql dbms 5.x版本