所以我需要的是得到一個對象的最便宜的價格。可以有n個價格,價格可以是周價格或日價格。無論是一天還是一週的價格,我都需要最便宜的價格。我試着用下面的查詢。但是我也得到了一些NULL行。其次,如果一天的價格是最便宜的,那麼我需要那一天的價格,而不是7的倍數,就像我下面的查詢那樣。MySQL最便宜的價格查詢
所以下面的數據應該得到我這兩個目標搜索時:
id | oid | price | type (day or week)
-------------------------------------
2 | 1 | 65 | w
3 | 2 | 9 | d
我希望這是可以理解的。謝謝你的幫助!
的對象表:
id | title
-----------
1 | Object 1
2 | Object 2
價格表:
| oid | price | type (day or week)
----------------------------------
| 1 | 10 | d
| 1 | 65 | w
| 2 | 9 | d
| 2 | 70 | w
我的查詢:
SELECT o.id, p.oid, p.price, p.type
FROM objects AS o
LEFT JOIN prices AS c ON p.oid= o.id
AND p.price =
(
SELECT MIN(IF(type="w",price, price*7)) FROM prices
WHERE oid= o.id
)
LEFT JOIN ...
LEFT JOIN ...
WHERE ...
GROUP BY o.id ORDER BY p.price ASC
的話,我沒有得到的結果在所有的一些對象 – Mike
更新中...但它取決於NULL是否在您的表中或來自JOIN –
它取決於IF語句以及價格表中的日/周價格的順序。這表明整體錯誤的查詢。價格的順序應該沒有關係。 – Mike