【发布时间】:2022-01-13 20:32:38
【问题描述】:
*第一篇文章:如果我遗漏了什么,请提前道歉。请告诉我,我会更新!
我正在寻找: 超过 30 天未登录的用户 用户角色不相等的地方(“所有者”、“租户”、“经理”) 并且来源不等于“内部”
我有 3 张桌子
- last_login - 有用户登录信息(load_date、current_date、last_login)
- 用户 - 有关于用户是外部还是内部的信息(来源)
- 角色 - 用户拥有的角色 (role_name)
我必须为我的 WHERE 条件加入 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')
【问题讨论】:
-
我希望这会产生语法错误。那是你的确切语法吗? role_name 的数据类型是什么?
标签: postgresql join