mysql - SQL:仅选择满足关系表条件的行

标签 mysql sql

我有两个表,只有当第二个表中满足所有特定条件时,我才需要从第一个表中选择值。让我们通过一个例子来解释更多。

第一个表

id       movie    
---|--------------
1  | Matrix       
2  | Pulp Fiction 
3  | Avengers     
4  | Commando     

第二个表

id    movie_id    user_id
---|-----------|---
1  | 1         |  1
2  | 1         |  2
3  | 1         |  3
4  | 2         |  1
5  | 2         |  4
6  | 3         |  2
7  | 4         |  1
8  | 4         |  3

从这些表中,我只需要找出用户 1 和 3 看过的电影。所以结果我需要看到

想要的结果

id    movie   
---|--------
1  | Matrix      
4  | Commando

我尝试了一些查询,但无法掌握最终结果。 最后,我将根据选择作为输入的用户“构建”此查询。所以最后,可能还有 5 个用户,我只需要查找他们都看过的电影。所以请记住这一点。

感谢所有帮助和想法,谢谢。

最佳答案

您可以尝试以下 -

select b.id, b.movie from 
Secondtable a inner join Firsttable b 
on a.movie_id=b.id 
where user_id in (1,3)
group by b.id, b.movie
having count(distinct user_id)=2

关于mysql - SQL:仅选择满足关系表条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56165823/

相关文章:

php - 表中显示重复记录

mysql - 更新 WHERE Field IN

php - 在mysql中获取COUNT时循环

php - Zend Form isValid() 返回 false

mysql - 从插入语句中检索 UUID

mysql - 具有条件的常见事件的 SQL 平均值

sql - SQL 语句的小写或大写

sql - T-SQL正则表达式替换

mysql - 不同输出的日期差异

php - Wordpress - 只有帖子的用户总数