На мгновение расскажу об этих трех строках:
SELECT cast_id as cast_member_id1, cast_id as cast_member_id2
.
FROM cast c ...
.
HAVING cast_member_id1 < cast_member_id2
Он выбирает столбец из приведения дважды, а затем сравнивает его с собой. ХАЙВИНГ никогда не бывает правдой.
Вы должны начать с лучшего места, чтобы закончить, где вы хотите. Попробуйте это с 2 "копиями" cast
.
Что-то вроде:
SELECT c1.cast_id as cast_member_id1, c2.cast_id as cast_member_id2
.
FROM cast c1, cast c2 .....
.
.
И, конечно, вы хотите "присоединиться" к актерам, только если они в одном фильме.
Я не могу гарантировать, что это само по себе исправит запрос. Но это делает вас лучшим стартовым местом.