我有2個表,其中一個包含產品,一個購買。我試圖找出每種產品最近3次採購價格的平均值。因此,在下面的例子中,對於產品「豆」我希望產品的時候1230854663之前返回的最後3種購買的平均價格,即用戶C,d,E(239)MySQL嵌套查詢
產品的平均
+-------+------------+
| Name | time |
+-------+------------+
| beans | 1230854764 |
+-------+------------+
購買
+----------+------------+-------+
| Customer | time | price |
+----------+------------+-------+
| B | 1230854661 | 207 |
| C | 1230854662 | 444 |
| D | 1230854663 | 66 |
| E | 1230854764 | 88 |
| A | 1230854660 | 155 |
+----------+------------+-------+
,我想出了一個嵌套select查詢,幾乎讓我有,即它的工作原理,如果我硬編碼的時間:
SELECT products.name,(SELECT avg(temp.price) FROM (select purchases.price from purchases WHERE purchases.time < 1230854764 order by purchases.time desc limit 3) temp) as av_price from products products
但是,如果查詢引用product.time而不是硬編碼的時間,例如下面我得到該列products.time不存在的錯誤。
SELECT products.name,(SELECT avg(temp.price) FROM (select purchases.price from purchases WHERE purchases.time < products.time order by purchases.time desc limit 3) temp) as av_price from products products
我不知道如果我正在與嵌套查詢一個簡單的錯誤,不然我在完全錯誤的方式去這件事,應該使用連接或其它一些結構,無論哪種方式,我卡住了。任何幫助將得到很好的接收。
您的意思是「產品時間1230854764之前的最後3個採購價格的平均值」?不,這也沒有意義。我對你的時間價值感到困惑,他們是否正確? – Jared
您的表格結構沒有標準化。 「購買」沒有任何產品數據。 – Tony
「產品」中是否只有一條記錄?如果他們是多個記錄,他們與「採購」有什麼關係? – eggyal