很确定这个问题可以很快得到解答,但我似乎无法在网上找到解决方案.我想补充一点(如果你还没弄明白的话),我是一个完全的初学者.

下面的查询列出了约翰尼·德普主演的所有电影和海伦娜·邦汉·卡特主演的所有电影.我该如何列出约翰尼和海伦娜主演的所有电影?

非常感谢.

SELECT title FROM movies
JOIN stars
ON stars.movie_id = movies.id
JOIN people
ON people.id = stars.person_id
WHERE people.name IN ("Johnny Depp", "Helena Bonham Carter")
ORDER BY title;

推荐答案

untested但是看看这是否对你有效,在只有两个的地方聚合标题和过滤器——假设一个人只能在一部电影中出演一次.

select m.title 
from movies m
join stars s on s.movie_id = m.id
join people p on p.id = s.person_id
where p.name in ('Johnny Depp', 'Helena Bonham Carter')
group by m.title
having Count(*) = 2
order by m.title;

还要注意的是,使用别名可以提高可读性,字符串文字应该用单引号括起来,而在大多数数据库中,双引号是为分隔符保留的.

Sql相关问答推荐

在SQL Server中使用LEFT连接包含特定记录

分组多输出访问查询问题

如何在PostgreSQL中的一列中添加两个文本?

判断序列索引处的序列是否完整

找到最新的连线

为什么我的SQL标量函数有时会抛出";子查询返回多个值.这是不允许的.

关于Postgres横向联接的谓词

从单个表达式中的分隔字符串中取平均值

使用多个WITH子查询的替代方法

不存在记录的国外关键点

如何使用 Google BigQuery 中的条件根据特定列值连接列的 N 行?

SQL获取两个日期范围之间的计数

SQL 函数 DIFFERENCE 返回有趣的分数

雅典娜弄错了操作顺序

如何 Select 一列具有最小值而另一列具有给定值的记录?

计算 PostgreSQL 中的平均会话长度

使用 R 遍历 SQL 查询,每次替换一个变量

如何更改 duckdb R 中的数据约束

在时态表和非时态表之间使用 EXCEPT 的 SQL 子查询给出表达式错误数

遍历数据,计算每个月最后三天的总和