mysql - 从具有多个表的 SQL 数据库中获取用户 ID
问题描述
我正在尝试为观看了一定数量电影的用户获取电子邮件地址。例如,如果用户在我对电影 3 运行查询时观看了电影 1、2 和 3,那么该用户应该出现在我的表中。但是当用户匹配所有条件时,例如当我运行用户观看电影 1、2、3 和 4 的查询时,该用户不应该出现。
这是两个表:
SELECT Email
From Users
Inner Join Movies On Users.ID = Movies.ID
Where(Movies = "Movie 1" AND Movies = "Movie 2")
但是有些用户 1 和用户 2 的显示方式,但它只需要列表中的用户 1。
解决方案
如果你想要看过电影的用户的电子邮件,'Movie1'
你'Movie2'
可以这样做:
select u.email
from users u inner join movies m
on m.id = u.id
where m.movies in ('Movie1', 'Movie2')
group by u.email
having count(*) = 2
如果存在用户不止一次看过电影的情况,请更改:
having count(*) = 2
和:
having count(distinct m.movies) = 2
推荐阅读
- python - Python for循环csv并发
- python - 如何在 Jupyter 的 URL 中传递密码?
- typescript - Msgraph - 从 msgraph api 下载 .eml 作为 itemAttachment
- ios - 如何在不使用 GoogleMap API 的情况下表达最近的地铁站名称?(iOS,斯威夫特)
- javascript - 如何将文件路径作为命令行参数传递?
- python - attrs 如何欺骗调试器进入自动生成的代码?
- javascript - React Stripe - 将状态映射到条带注入组件上的道具?
- amazon-web-services - Terraform AWS CloudTrail 配置失败
- css - 在 Tailwind 中调整窗口大小时如何避免 div 混乱?
- flutter - 如何为建筑物绘制数字交互式室内地图?