我有一个带有2个不同表的数据库1用于具有以下结构的订单详细信息:
--------------
|order_id |
--------------
|1234 |
--------------
|1235 |
--------------
|1236 |
--------------
|1237 |
--------------
另一个表用于记录订单更新的次数
---------------------------------------------------
|update_id | order_id | updated_on |
---------------------------------------------------
|1 | 1234 | 2015-10-27 17:57:28
---------------------------------------------------
|2 | 1234 | 2015-10-28 17:57:28
---------------------------------------------------
|3 | 1235 | 2015-12-27 17:57:28
---------------------------------------------------
|4 | 1236 | 2015-12-28 17:57:28
---------------------------------------------------
|5 | 1236 | 2015-12-28 17:57:28
---------------------------------------------------
现在我希望它为每个订单ID显示2种类型的count(),即一个订单更新的总次数,第二个是今天订单更新的次数(2015年) -10-28)
----------------------------------------------
|order_id | updated | updated_today |
----------------------------------------------
|1234 | 2 | 1
----------------------------------------------
|1235 | 1 | 0
----------------------------------------------
|1236 | 2 | 2
----------------------------------------------
|1237 | 0 | 0
----------------------------------------------
在这方面,我们将非常感谢帮助
答案 0 :(得分:0)
按订单ID分组,并进行简单计数,以及更新日期=今天的总和。
select o.order_id,
count(ou.order_id) updated,
sum(date(updated_date) <=> date(now())) updated_today
from orders o
left join order_update ou on (o.order_id = ou.order_id)
group by o.order_id;
答案 1 :(得分:0)
在此尝试:
您只需更改表名和字段名
SELECT
o.order_id,
COUNT(*),
SUM(IF( CURRENT_DATE() = DATE(l.updated_on),1,0) ) AS updated_today
FROM order o
LEFT JOIN loggin l ON l.order_id = o.order_id
GROUP BY o.order_id;