Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hitung kejadian berdasarkan beberapa kondisi untuk dua tabel

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengurutkan daftar array dalam zig-zag di PHP?

  2. PostgreSQL setara dengan tabel memori MySQL?

  3. Bagaimana cara menjalankan perintah MySQL di bash?

  4. Backup Best Practices untuk MySQL, MariaDB dan Galera Cluster

  5. (perlu saran) Bicara ke database server MySQL dari Aplikasi Android saya