Во-первых, select distinct
является избыточным в подзапросе.Предложение WHERE
не изменяет количество строк.Итак, вы должны написать:
select fa.*
from football_assets fa
where fa.pair in (select f.pair from football f);
Очевидно, у вас есть несколько пар, которых нет в обеих таблицах.Я настоятельно рекомендую вам использовать not exists
или left join
/ where
, чтобы найти их:
select fa.*
from football_assets fa
where not exists (select 1 from football f where fa.pair = f.pair);
Не используйте not in
.Он не вернет вообще никаких строк, если хотя бы одно значение pair
равно NULL
в football
.Это из-за того, как NULL
работает в SQL.По этой причине я настоятельно не рекомендую not in
с подзапросами.