【发布时间】:2018-03-21 09:19:41
【问题描述】:
我正在编写一个拍卖脚本,其中包含一个看起来像所附图像的表格。
在拍卖中,两个用户可以出价相同,例如,两个玩家可以出价“1”,这将使该出价总数为 2。
我需要一个查询来获取所有用户的单个出价金额以及拍卖 ID 范围内该出价金额的总数。
就目前而言,我首先得到用户的出价:
SELECT bid_amount FROM all_bids WHERE auction_id = '129' AND user_id = '9'
然后我在 PHP 中遍历每个数量并执行以下操作
SELECT COUNT(*) FROM all_bids WHERE auction_id = '129' AND bid_amount = 'xxx'
但这当然是非常耗电的,我相信它可以在一个查询中完成。
我已经做到了
SELECT bid_amount,COUNT(*) FROM (SELECT bid_amount FROM all_bids WHERE auction_id = '129' AND user_id ='9') as foo GROUP BY bid_amount
返回正确的出价金额但计数都是 1 这是错误的,因为我猜我的错误查询仅计算子查询内的值,而不是仅计算该用户放置的出价之外的值
【问题讨论】:
-
您的示例数据没有拍卖“123”或 player_id 列。这使您的问题难以理解。还要用您正在使用的数据库标记问题并解释错误。
-
这张桌子很大,有数千个出价,所以很难给出一个具体的快照,但我理解你的观点