sql - 根据同一列中的两个案例询问一个条件。sqlite3
问题描述
我正在尝试将海伦娜·邦哈布·卡特和约翰尼·德普主演的所有电影的名称插入到一个新表中。我首先从一个名为电影的表中选择信息,该表有一个标题和一个 ID。然后来自一个名为 stars 的表,该表有一个 movie_id 和一个 person_id。最后,我从一个名为 people 的表中进行选择,该表有一个 id 和 name 列。我认为我的问题出在工会线上,但我不知道为什么。
CREATE TABLE jh( title TEXT)
INSERT INTO jh(title)
SELECT movies.title
FROM movies
WHERE movies.id in ( SELECT stars.movie_id FROM stars WHERE stars.person_id in(SELECT
people.id FROM people WHERE people.name = ' Johnny Depp' UNION SELECT people.id FROM people
WHERE people.name = 'Helena Bonham Carter'))
解决方案
您可以加入表格,过滤您想要的演员,按电影分组并将条件设置为 HAVING 子句:
SELECT m.title
FROM movies m
INNER JOIN stars s ON s.movie_id = m.id
INNER JOIN people p ON p.id = s.person_id
WHERE p.name IN ('Johnny Depp', 'Helena Bonham Carter')
GROUP BY m.id, m.title
HAVING COUNT(*) = 2 -- the number of the actors
推荐阅读
- vb.net - 如果选定的树视图节点是父节点,有没有办法隐藏/取消启用组框?
- python - 使用 Python 使用 smtplib 库发送电子邮件
- java - 将 id 与实体一起使用的最佳方法是什么
- python - 尝试在 powershell 上安装 tensorflow-gpu python-package 时为什么权限被拒绝?
- python - 为什么这两个 2d 列表的初始化在 python 中不同
- vb.net - 如何从 2 个不同的来源(文件夹/目录)填充列表框?
- ajax - Laravel 使用参数发出 AJAX GET 请求的最佳方法
- webpack - 如何从 wasm rust 中正确导入 js 脚本
- python - 无法使用 Python 将数据框列格式从 YYYY-MM-DD 修改为 DD/MM/YYYY
- javascript - 如何解析这种非标准 JSON 格式?