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

レベル2で指定された数の値のみを持つレベル1のすべてのレコードを取得します

    親の行数をカウントするサブクエリを使用してテーブルを結合し、必要な数の行のみを選択します。

    SELECT DISTINCT a.level1 AS Parent, a.level2 AS Child
    FROM yourTable AS a
    JOIN (SELECT level1, COUNT(DISTINCT level2) AS children
          FROM yourTable
          GROUP BY level1) AS b
    ON a.level1 = b.level1
    WHERE children = :child
    

    :childを置き換えます 一致させようとしている子供の数と。

    デモ

    COUNT(Column2)を使用する COUNT(*)の代わりに Column2の行は無視されます NULLです 、したがってA100は含まれません 。




    1. MariaDBデータベースを暗号化された状態と暗号化されていない状態に移動する

    2. Sqlwhere句が機能しない

    3. 2つのSQLServerデータベース(スキーマとデータ)を比較するための最良のツールは何ですか?

    4. 列がmysqlのauto_incrementであるかどうかを確認するにはどうすればよいですか?