mysql - 如何在mysql中获取具有相同ID的数据
问题描述
我有一个名为 perform 的表,其中包含 pid(表演者的 id)和 vid(视频的 id),如下所示:
+---------+------+
| pid | vid |
+---------+------+
| 2303485 | 2 |
| 2305672 | 2 |
| ... | ... |
+---------+------+
我的问题是,根据视频的 ID,如何获取给定视频中演员表演的所有视频。
我的解决方案是:
select vid
from perform
where pid in (select pid from perform where vid = 2)
但是,这需要 30 秒甚至更长的时间。我该如何改进?
解决方案
尝试这个:
SELECT vid FROM perform WHERE pid IN (SELECT pid FROM perform WHERE vid = 2)
或这个:
SELECT p1.vid
FROM perform AS p1
INNER JOIN perform AS p2 ON p2.pid = p1.pid AND p2.vid = 2
GROUP BY p1.vid
推荐阅读
- swift - AVAudioSession.setCateogry 没有蓝牙麦克风输入
- html - 进度条元素对齐
- rust - Rust:移动发生是因为具有类型 `ReadDir`,它没有实现 `Copy` 特征
- git - 从旧项目中删除剩余的 git refs
- r - 在R中的for循环内排列数据框
- html - “..”在 html 图像目录路径中不起作用
- ruby-on-rails - 使用带有 Rails 引擎的 webpacker
- amazon-web-services - 使用 CloudFormation 在 ECS 服务上定义多个任务
- sql - 在我的 SQL 查询中出现丢失的表达式错误并且无法完全找出我丢失的内容?
- python - 将多个文本文件中的数据加载到单个二维数组中