Si te sigo correctamente, puedes usar exists
para filtrar en table2
:
select count(*) as cnt
from table1 t1
where t1.sex = 1 and t1.age = 3 and exists (
select 1
from table2 t2
where t2.id = t1.id and t2.var1 = 'Wisconsin'
)
Esto cuenta filas en la primera tabla para las cuales al menos una fila en la segunda tabla tiene Wisconsin. Si, por el contrario, quiere asegurarse de que todas las filas en la segunda tabla satisface la condición, entonces una opción es:
select count(*) as cnt
from table1 t1
inner join (
select id
from table2
group by id
having min(var1 <=> 'Wisconsin') = 1
) t2 on t2.id = t1.id
where t1.sex = 1 and t1.age = 3