Mysql вывод по двоим значениям одного поля

KotOFF

Новичок
есть 2 таблицы фильма(movies) и роли в фильме(roles)
структура movies:
id, title
структура roles
movie - айди фильма
actor - айди актера, игравшего роль в этом фильме
вопрос - нужно вытащить все фильмы, где играют роль 2 определенных актера(например актер - айди 1 и айди 2)
есть запрос, который выводить все фильмы 2 этих актеров
SELECT `title` FROM `roles` LEFT JOIN `movies` ON `roles`.`movie`=`movies`.`id` WHERE `actor` IN(1,2)
а мне нужно, что бы он выводил только те фильмы, в которых играют роль оба актера???
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
2 раза join и два условия с and, только алиасы джоинов разные будут.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
SELECT `title` FROM `roles` r
JOIN `movies` m1 ON r.`movie`=m1.`id`
JOIN `movies` m2 ON r.`movie`=m2.`id`
WHERE m1.`actor` = 1 AND m2.`actor`=2

Как-то так.

PS: Решение в лоб, не сильно оптимальное.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну блин, разберись сам, а? Поставь алиас туда любой)
 

WMix

герр M:)ller
Партнер клуба
Код:
select *
from movies
where id in(
    select movie
    from roles
    where `actor` IN(1,2)
    group by movie
    having count(*) = 2
)
 
Сверху