*第一篇:如果我遗漏了什么,请提前道歉。请告诉我,我会更新的!
我要找的是:在用户的角色不相等(“所有者”、“租者”、“经理”)和源不等于“内部”的情况下,未登录30天以上的用户。
我有三张桌子
last_login)
。
我必须参加3张桌子,以满足我的工作条件。当我加入第三表时,我的结果从300个降到10个左右。我已经检查了表,至少应该得到200+的结果。有人能告诉我我的加入有什么问题吗?
select u.id, u.username
from user as u
join last_login as ll
on u.username = ll.username
join role as r
on ll.username = r.username
where ll.loaddate = ll.current_date - 1
and ll.lastlogin < ll.current_date - 30
and u.source <> 'INTERNAL'
and r.role_name <> ('Owner', 'Renter', 'Manager')发布于 2022-01-13 20:44:18
查看您的查询,我认为您应该使用而不是,而不是<>。还可以尝试使用内部或左侧联接。例如,类似这样的东西:
select u.id, u.username
from user as u
left join last_login as ll
on u.username = ll.username
left join role as r
on ll.username = r.username
where ll.loaddate = ll.current_date - 1
and ll.lastlogin < ll.current_date - 30
and u.source NOT LIKE '%INTERNAL%'
and r.role_name NOT IN ('Owner', 'Renter', 'Manager')https://stackoverflow.com/questions/70702769
复制相似问题