說我有一個表,如下所示:需要MySQL查詢大師(記錄數據的交集)
id, auctionUser, auctionId, MinPrice, NumBids, PlacedBids
然後說我已經得到了上面的表下面的條目具有相同的auctionId:
1 | user1 | 99 | 10.25 | 20 | 0
2 | user2 | 99 | 10.50 | 50 | 0
有沒有辦法寫一個查詢(WHERE auctionId = 99),它會返回一行爲MinPrice中每兩個行相交的0.01(不知道這是不是正確的詞,但它是最好的我可以想出來描述它)基於NumBids中的出價數量?因此,對於上面的數據,兩個用戶從10.50到10.75會有一個「相交」。我希望能夠創造流動數據顯示,像這樣,交替用戶之間的競價投標的NumBids集數:
(bidAmount) | (auctionUser) | NumBids | PlacedBids
10.50 | user2 | 50 | 1
10.51 | user1 | 20 | 1
10.52 | user2 | 50 | 2
10.53 | user1 | 20 | 2
10.54 | user2 | 50 | 3
10.55 | user1 | 20 | 3
.
.
.
10.70 | user2 | 50 | 20
10.71 | user1 | 20 | 20 <-- ends here for user1 since 20 NumBids would be used up
10.72 | user2 | 50 | 21
我甚至不知道這是否可能通過sql查詢或不 - 甚至如何啓動這樣的查詢。我想我會把它扔到那裏,看看是否有任何sql大師的想法。我想如果有辦法做到這一點,從試圖使用php循環併產生結果的查詢生成它可能會快得多......也許不會。
與往常一樣,MUCHO感謝您的任何時間和建議,您可以在此留出餘地!
這些數據是否正確? 10.25 + 20出價(1c增量)甚至沒有達到10.50 – RichardTheKiwi 2011-02-26 23:12:36
你在某種意義上是正確的。爲了簡單起見,我只使用了基本數據。我只是試圖找出MinPrice和NumBids中存在一系列重疊的情況,以及如何生成交替的行序列,以便我可以爲出價創建條目,如果出價工具有重疊的自動出價設置,直到重疊不再存在。我想下面的答案關於一個數字表,它在正確的軌道上... – Michael 2011-02-27 01:47:13
所以,讓我得到這個權利,你有你的起始出價價格是從一個用戶10.25,他們有20個出價,你有另一個用戶已有50個出價,拍賣現在高達10.72。所以每次出價總是0.01增量? – 2011-02-27 02:25:04