我有两张table。一个表包含所有用户信息。另一个表包含用户每次登录我们系统的记录。我需要说明的是有多少用户没有登录到系统。
我们有1613条记录。262个用户在给定的时间段内登录。比较查询应该显示差异,但我的查询不显示。它返回411(这是从哪里来的,我不知道)我显然做错了什么。
这是我的问题。
SELECT s.id
,s.first_name
, s.surname
, s.email
, s.`Status`
,date_format(s.subscription_start_date,'%Y-%m-%d %H:%i') as subscription_start
,date_format(s.subscription_expiry_date,'%Y-%m-%d %H:%i') as subscription_expiry
FROM user s LEFT JOIN user_log eul ON s.id=eul.userid
WHERE eul.userid IS NULL
and (s.status = 'Live' and s.activated = 1)
and s.payment > 0
and s.subscription_start_date < now()
and s.subscription_expiry_date > now()
我希望这有道理。
好 啊。以下是最新信息
这是原始查询。这会把所有登录我们系统的人都拉回来。他们名字旁边有个数字。这是6月份的数据。我需要知道谁没有在6月份登录。这有道理吗?
select
s.first_name
, s.surname
, s.email
,date_format(s.subscription_start_date,'%Y-%m-%d %H:%i') as subscription_start
,date_format(s.subscription_expiry_date,'%Y-%m-%d %H:%i') as subscription_expiry
, count(*) as count
, concat(year(eul.date_created), '-', lpad(month(eul.date_created), 2, 0)) as date
from user_log eul
INNER join user s on (s.id = eul.userid)
Where s.payment > 0 and s.subscription_start_date <= {d '2018-06-30'} and s.subscription_expiry_date > now()
and (s.status = 'Live' and s.activated = 1)
and eul.date_created >= {d '2018-06-01'}
and eul.date_created <= {d '2018-06-30'}
group by email, concat(year(eul.date_created), '-', lpad(month(eul.date_created), 2, 0))
提前谢谢。安德里亚
暂无答案!
目前还没有任何答案,快来回答吧!