Jika saya mengikuti Anda dengan benar, Anda dapat menggunakan exists
untuk memfilter pada 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'
)
Ini menghitung baris dalam tabel pertama yang setidaknya satu baris di tabel kedua memiliki Wisconsin. Sebaliknya, jika Anda ingin memastikan bahwa semua baris pada tabel kedua memenuhi kondisi, maka pilihannya adalah:
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