首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgresql:连接3个表

postgresql:连接3个表
EN

Stack Overflow用户
提问于 2022-01-13 20:32:38
回答 1查看 29关注 0票数 -1

*第一篇:如果我遗漏了什么,请提前道歉。请告诉我,我会更新的!

我要找的是:在用户的角色不相等(“所有者”、“租者”、“经理”)和源不等于“内部”的情况下,未登录30天以上的用户。

我有三张桌子

last_login)

  • user
  1. last_login -有用户登录信息(load_date,current_date,last_login),其中有用户是外部用户与内部(源)
  2. 角色的信息--角色用户拥有(role_name)

我必须参加3张桌子,以满足我的工作条件。当我加入第三表时,我的结果从300个降到10个左右。我已经检查了表,至少应该得到200+的结果。有人能告诉我我的加入有什么问题吗?

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2022-01-13 20:44:18

查看您的查询,我认为您应该使用而不是,而不是<>。还可以尝试使用内部或左侧联接。例如,类似这样的东西:

代码语言:javascript
复制
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')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70702769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档