我将从本月的order_log
中选择前5名产品,其中id
和date
等于order_db
中的列。因为每个订单可以有1个以上的产品。讲起来有点复杂,所以请参阅下面的示例。
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
的od_dtime
中计算日期为当前月份的order_db
。我写:SELECT * FROM order_log WHERE p_id IN
(SELECT p_id FROM order_db WHERE month(bk_dtime)='10')
运行此查询后,我期望:
第10个月的前5个订单是:
产品3(3个订单)
产品1(2个订单)
产品2(1个订单)
**对于产品名称,我没有问题。
最佳答案
如果要从数据库中选择前5行,则可以使用以下sql查询。
例如:您有一个表,该表具有一些属性,包括time-stamp属性,并且希望按时间降序排列
SELECT * FROM table_name where acc_id='2' order by time desc limit 0 , 5
关于mysql - 如何从另一个表中选择当月前5行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26504968/