这是我的表,它目前包含的一个小片断〜10,000,000行选择最大(日)两次从同一个表,针对不同条件
+---------+---------------------+-----------+----------------+
| card_id | date | avg_price | foil_avg_price |
+---------+---------------------+-----------+----------------+
| 10000 | 2014-06-28 09:05:56 | 5.02 | 10.22 |
| 20000 | 2014-06-28 09:05:54 | 14.58 | 25.10 |
| 10000 | 2014-06-29 09:05:56 | 0.00 | 19.62 |
| 20000 | 2014-06-29 09:05:54 | 14.58 | 0.00 |
| 10000 | 2014-07-01 09:05:56 | 0.00 | 19.62 |
| 20000 | 2014-07-01 09:05:54 | 0.00 | 25.10 |
+---------+---------------------+-----------+----------------+
这是卡的价格历史,包括什么avg_price以及foil_avg_price每天左右的价格。
我想选择一组cardid的最近日期,当foil_avg_price大于0时,该价格是多少,以及avg_price> 0的最近日期,以及该价格是多少。我得到的数据对于上面会看起来像这样设置:
+---------+---------------------+-----------+---------------------+----------------+
| card_id | avg_date | avg_price | foil_date | foil_avg_price |
+---------+---------------------+-----------+---------------------+----------------+
| 10000 | 2014-06-28 09:05:56 | 5.02 | 2014-07-01 09:05:54 | 19.62 |
| 20000 | 2014-06-29 09:05:54 | 14.58 | 2014-07-01 09:05:54 | 25.10 |
+---------+---------------------+-----------+---------------------+----------------+
我敢肯定,这涉及内部连接在同一个表,但我不能完全得到我的头周围。任何帮助将非常感激。
感谢您的回答。纠正我,如果我错了,但不会在第一个子选择限制1防止此查询返回多个行?我需要将这些数据返回给一组卡ID,例如, card_id in(10000,20000,...) – lebenski
好像我误解了你的问题 - 我以为你只想得到最后一个值,覆盖所有行。我会编辑我的答案。 –
完成,回答编辑。 –