【发布时间】:2023-02-11 17:45:47
【问题描述】:
postgresql
我有这样的桌子
表:用户
| user_id | user_name |
|---|---|
| u1 | user1 |
| u2 | user2 |
| u3 | user3 |
| u4 | user4 |
表:访问
| visit_id | user_id | visit_date |
|---|---|---|
| v1 | u1 | 2023-01-15 |
| v2 | u1 | 2023-01-16 |
| v3 | u2 | 2023-01-17 |
| v4 | u2 | 2023-01-18 |
| v5 | u4 | 2023-01-19 |
| v6 | u4 | 2023-01-20 |
| v7 | u4 | 2023-01-21 |
| v8 | u4 | 2023-01-22 |
| v9 | u4 | 2023-01-23 |
| v10 | u4 | 2023-01-24 |
| v11 | u4 | 2023-01-25 |
我怎样才能像这样过滤值列表:
加入故事后
我想 :: where user_name in ('user1','user2','user4') and user1 = '2023-01-16' , user2 = '2023-01-17' , user4 = '2023-01- 23'
结果
| User id | visit_date |
|---|---|
| user1 | 2023-01-16 |
| user2 | 2023-01-17 |
| user4 | 2023-01-23 |
【问题讨论】:
-
你的意思是你希望每个用户只在他们相应的、自己的、特定的日期,而不是这些用户中的任何一个在这些日期?
select a.user_name, b.visit_date from user a inner join visit b on a.user_id=b.user_id where (a.user_name,b.visit_date) in (('user1','2023-01-16'),('user2','2023-01-17'),('user4','2023-01-23')); -
您的解决方案是我需要的方式。非常感谢。
-
我已将其重新发布为下面的正确答案。
标签: postgresql