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