SELECT ai.auction_item_id, ai.starting_bid, b.bid_amount, i.*
FROM
auction_item as ai, //Table contains auction specific details about the item
item as i //Table contains general details about the item
INNER JOIN (
SELECT auction_item_id, bid_amount
FROM bid xb //Table contains bids on item
ORDER BY amount DESC
LIMIT 1) b
ON b.auction_item_id = ai.auction_item_id
WHERE
ai.auction_id = 4 AND
i.id = ai.listings_id
ORDER BY RAND()
LIMIT 4
当前使用上述查询,我可以从当前活动拍卖(拍卖#4)中获得4个随机项目。但他们目前都以相同的最高出价金额(来自内部联合)回来。每个项目应该有自己的最高出价金额(来自内部加入) - 除非该项目没有出价,那么它应该是0(或某物)简单的SQL内部联接查询 - 无法正常工作
我在做什么错在这里? 由于我希望外部部分中的每件商品的最高出价,因此投标表对于放置的每个出价都有一行,因此LIMIT 1和内部联合中的desc顺序排列。 (如果出价是)。
谢谢
目前,只有10个项目的1具有投标 - 所以我认为,任何项目没有投标只是越来越即1项与出价最高的出价。所以如果在内部联接中没有出价,它需要返回0。我认为这可能是解决方案,也许 – Martin 2015-04-02 04:46:44
划痕,即使另一个项目有出价 - 它只是拉出现有的最高出价,并使用所有项目(甚至有出价的项目):( – Martin 2015-04-02 04:50:27
你的内部连接表没有提及所以它只是为所有(外部)项目获得相同的max bid_amount。目前正在测试一个可能的解决方案 – Hockenberry 2015-04-02 05:07:38