私は1つのMySQLテーブルを販売しています。私は市場の各商品の平均価格が5分ごとに記録された2番目のテーブルを持っています。これらは価格が分単位で変化する可能性があります。2つのテーブルを結合して最も近いタイムスタンプを見つけよう
販売前と販売後の両方で販売時間に最も近い販売された各商品について、表2から市場価格を取得する必要があります。
私はそれを2つの別々のクエリとして販売前の価格と価格に分割しようとしていました。私がこれまでに得たことは以下の通りです。しかし、それが問題になるのは、マーケットを注文するだけなのです。行が設定された後です。 GROUP BYステートメントがsales.idごとに一番上の行を選ぶ前にmarket.timeで注文する必要があります。基本的には、販売されたアイテムのリストにある最古の価格を返します。その後、テーブル全体がその時間に注文されます。
SELECT sales.id, sales.price, sales.time, sales.item_id, market.time, market.price,
FROM sales_table sales
INNER JOIN market_table market ON market.item_id = sales.item_id
WHERE market.time < sales.time
GROUP BY sales.id
ORDER BY market.time DESC;
売上テーブル
| id | price| time | item_id |
--------------------------------------------------------
| 1 | 0.5 | 2006-10-05 11:55:44 | 5 |
| 2 | 1.1 | 2007-10-07 12:34:17 | 5 |
| 3 | 0.4 | 2008-10-09 08:19:36 | 9 |
| 4 | 5.8 | 2010-10-13 04:28:14 | 1 |
市場テーブル
| id | price| time | item_id |
--------------------------------------------------------
| 1 | 0.5 | 2006-10-05 11:50:00 | 1 |
| 2 | 1.1 | 2006-10-05 11:55:00 | 1 |
| 3 | 0.4 | 2008-10-09 02:20:00 | 2 |
| 4 | 5.8 | 2010-10-09 04:25:00 | 2 |
望ましい結果、私は現在、私の上記のクエリから取得しています何
| s_id | s_price| sales_time | item_id| market_time |m_price
----------------------------------------------------------------------------
| 1 | 0.5 | 2006-10-05 11:55:44 | 5 | 2006-10-05 11:55:00| 0.5
| 2 | 1.1 | 2007-10-07 12:34:17 | 5 | 2007-10-07 12:30:00| 1.2
| 3 | 0.4 | 2008-10-09 08:19:36 | 9 | 2008-10-09 08:15:00| 0.45
| 4 | 5.8 | 2010-10-13 04:28:14 | 1 | 2010-10-13 04:25:00| 6.0
| s_id | s_price| sales_time | item_id| market_time |m_price
----------------------------------------------------------------------------
| 1 | 0.5 | 2006-10-05 11:55:44 | 5 | 2001-01-01 00:00:00| 1.0
| 2 | 1.1 | 2007-10-07 12:34:17 | 5 | 2002-06-01 09:15:00| 0.8
| 3 | 0.4 | 2008-10-09 08:19:36 | 9 | 2002-08-14 15:30:00| 0.2
| 4 | 5.8 | 2010-10-13 04:28:14 | 1 | 2003-10-01 12:00:00| 5.2
http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-veryを参照してください。 -simple-sql-query – Strawberry
@Strawberry Ouch ...私はそれが私の質問ではないことを嬉しく思っています;-) –
@TimBiegeleisen私はまだ頻繁に言えば、誰かに。 – Strawberry