0
我要从order_log
中选择本月的前5个产品,其中id
和date
等于order_db
中的列。因为每个订单可以超过1个产品。这有点复杂,请看下面的示例。如何从另一个表中选择当前月份的前5行
order_db
+------+------+---------------------+
|od_id | p_id | od_dtime |
+------+------+---------------------+
| 1 | 1 | 2014-10-01 00:00:00 |
+------+------+---------------------+
| 2 | 2 | 2014-10-01 00:00:00 |
+------+------+---------------------+
| 3 | 3 | 2014-10-02 00:00:00 |
+------+------+---------------------+
| 4 | 4 | 2014-10-02 00:00:00 |
+------+------+---------------------+
| 5 | 5 | 2014-10-03 00:00:00 |
+------+------+---------------------+
.
.
+------+------+---------------------+
| 10 | 10 | 2014-10-31 00:00:00 |
+------+------+---------------------+
order_log
+-------+------+
| pl_id | p_id |
+-------+------+
| 1 | 5 |
+-------+------+
| 2 | 5 |
+-------+------+
| 3 | 5 |
+-------+------+
| 4 | 2 |
+-------+------+
| 5 | 1 |
+-------+------+
.
.
.
+-------+------+
| 10 | 1 |
+-------+------+
所以我需要算product_id
其中date是在当月从order_db
od_dtime
。我写道:
SELECT * FROM order_log WHERE p_id IN
(SELECT p_id FROM order_db WHERE month(bk_dtime)='10')
运行此查询后,我想到:
前5个订单月10的分别是:
- 产品3(3级)
- 产品1( 2个订单)
- 产品2(1个订单)
**为产品名称我没有问题。
对不起降序订购,你的答案是从现实太远。 – Wilf 2014-10-22 14:14:47
请纠正我错在哪里。提前致谢。 – 2014-10-24 06:10:48