比较两个表并得到其中一个表的结果

20jt8wwn  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(139)

我有两张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))

提前谢谢。安德里亚

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题