首页 > 解决方案 > 如何在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 秒甚至更长的时间。我该如何改进?

标签: mysql

解决方案


尝试这个:

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

推荐阅读