[英]Count of Items Based on Todays Date in MySQL
我有2個表,一個具有user_info
,另一個具有user_activies
。
我有一個查詢,可從user_info
表中獲取幾行。 我想添加到此查詢的是;
我想獲取今天的用戶活動,並從user_activities
表中對其進行計數 。
user_info
| id | name | views | lastlogin | regdate | group_id |
user_activities
| id | userid | activity | date |
當前查詢
select id, name, views, lastlogin
from user_info
where group_id = 2
ORDER BY user_info.id ASC
我如何才能將今天已完成的活動總數連接起來?
提前致謝!
SELECT i.id, i.name, i.views, i.lastlogin, Count(a.id)
FROM user_info i, user_activities a
WHERE i.group_id = 2 AND i.id = a.userid
AND a.date = CURDATE()
ORDER BY user_info.id ASC;
這不會給您一些正常的用戶。 相反,您將必須選擇一個用戶。 如果您選擇多個用戶,您將獲得一個隨機名稱,其中包含所有選定用戶的所有活動的總和。
或簡而言之: 這不能解決您的問題。 采取JOIN
解決方案。
我假設日期是日期類型:
select
u.id,
u.name,
u.views,
u.lastlogin,
sum(
-- if datetime IF (date(date) = curdate() , 1, 0)
IF (date = curdate() , 1, 0)
) as 'today_activities'
from user_info u
-- using left join you will get the list of all user even if they
-- don't have any activities today with sum activities= 0
LEFT JOIN user_activities a on u.id = a.userid
where
group_id = 2
group by u.id
ORDER BY u.id ASC
您可以嘗試以下方法:
SELECT i.id, i.name, i.views, i.lastlogin, Count(a.activities)
FROM user_info i inner join user_activities a
WHERE i.group_id = 2 AND i.id = a.userid
AND a.date = now()
ORDER BY user_info.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.