這是我之前查詢的後續問題。我希望發佈一個新的問題是恰當的:Selecting a subset of rows from a PHP table使用MySql選擇行的子集:有條件地限制所選條目的數量
我有一個SQL表看起來像這樣(例如):
id seller price amount
1 tom 350 500
2 tom 350 750
3 tom 350 750
4 tom 370 850
5 jerry 500 1000
我想選擇以賣方一行:特別,對於每個賣家,我想要最便宜的價格和最大的價格。在上面的例子中,我想要第2行和第5行(或者3和5,只要我只獲取其中的一個,我不關心2和3中的哪一個)。
我使用這個:
dbquery("SELECT a.* FROM $marketdb a
INNER JOIN
(
SELECT seller, MAX(amount) amount
FROM $marketdb
WHERE price=$minprice
GROUP BY seller
) b ON a.seller = b.seller AND
a.amount = b.amount;");
但是,這是給我行2,3和5,我只希望行2或3
我也有一種揮之不去的懷疑,這可能並不總是返回最低價格行。到目前爲止,我的測試被一個事實弄糊塗了,那就是我爲給定的賣家輸入了多於一行的相同金額。
如果有人能指出我的錯誤,我會非常感激。
謝謝!
編輯:我的歉意,我沒有問我的意思要問。我想從全球最低價格返回的行,每個賣家最多1個,而不是每個賣家的最低價格。這將只是上面的第2或3行。抱歉!
這這樣做,有非常輕微的mods,以適應我的粗心(見編輯)。謝謝! – KBriggs
歡迎您來到這裏! – Abubakkar