Это эквивалентно:
Select count(*) as testOffers
From table1 t1 join
(Select distinct post_test_id
From table2
Where user_id = 367
) t2
on t1.posted_test_id = t2.post_test_id
where t1.is_test_offer = 1;
Обратите внимание, что select distinct
очень важно в подзапросе для того, чтобы оба семантически были эквивалентны. Это не нужно для in
, потому что дубликаты не имеют значения.
Может оказаться, что select distinct
не требуется в вашем конкретном случае. Это было бы потому, что подзапрос не возвращает дубликаты.