Как получить данные с одинаковым идентификатором в mysql

Terrence Liao спросил: 12 мая 2018 в 05:05 в: mysql

У меня есть таблица, называемая execute, которая содержит pid (идентификатор исполнителя) и vid (идентификатор видео) следующим образом:

+---------+------+
| pid     | vid  | 
+---------+------+
| 2303485 | 2    | 
| 2305672 | 2    |
|  ...    | ...  |
+---------+------+

Мой вопрос, заданный идентификатором видео, для получения всех видеороликов, выполняемых участниками в данном видео.

Мое решение:

select vid 
  from perform 
 where pid in (select pid from perform where vid = 2)

Однако это занимает 30 секунд или даже дольше. Как я могу улучшить?

1 ответ

user8790030 ответил: 13 мая 2018 в 03:03

Попробуйте следующее:

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
Terrence Liao ответил: 12 мая 2018 в 05:26
ОШИБКА 1054 (42S22): Неизвестный столбец "p2" в разделе "on"
Terrence Liao ответил: 13 мая 2018 в 03:05
Большое спасибо! Я починил это!
user8790030 ответил: 13 мая 2018 в 03:03
Конечно, спасибо; исправлено имя столбца в соответствии с вашим.