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

他のテーブルに存在しないすべてのレコードをカウントします-SQLクエリ

    結合を使用した代替ソリューションは次のとおりです。

    SELECT COUNT(*)
    FROM Table1_delta t1 LEFT JOIN Table1 t2
    ON t1.pagename = t2.pagename
    WHERE t2.status IS NULL OR t2.status = 1
    

    上記のクエリの一時テーブルは次のようになります。

    +-----------+--------+
    | pagename  | status |
    +-----------+--------+
    | pagename1 |  2     |    # this row is NOT counted
    | pagename2 |  1     |    # +1 this row has status = 1 and is counted
    | pagename3 |  null  |    # +1 this row has status = null and is counted
    | pagename4 |  null  |    # +1 this row is also null and is counted
    +-----------+--------+
    

    実行中のデモについては、以下のリンクを確認してください。

    SQLFiddle



    1. 行から最大値を取得して別のテーブルに結合する

    2. SQLServerでの1対1の関係の定義

    3. OracleデータベースからプログラムでDDLを生成する方法は?

    4. Oracle SQL Developerでプロシージャを作成する方法は?