sql >> データベース >  >> RDS >> Mysql

2つのテーブルのいくつかの条件に基づいて発生をカウントします

    私があなたを正しくフォローしていれば、existsを使用できます 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'
    )
    

    これは、少なくとも1つある最初のテーブルの行をカウントします。 2番目のテーブルの行にはウィスコンシンがあります。一方、すべての行を確認したい場合は、 2番目の表で条件を満たす場合、オプションは次のとおりです。

    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. MySql一括読み込みコマンドラインツール

    2. AccessのODBCリンクテーブルへの一括INSERTのパフォーマンスを向上させる方法は?

    3. 前月または前年度の欠落データを累積的に追加する

    4. MySQL列の照合を発見する