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

postgresで2つのテーブルを比較する方法

    ええと、理解するのが最も簡単ですが、必ずしも最速である必要はありませんが、おそらくこのようなものです。 (ただし、「比較」とは別の意味になる場合があります。)

    -- Values in column1 that aren't in column2.
    SELECT column1 FROM query1 
    WHERE column1 NOT IN (SELECT column2 FROM query2);
    
    -- Values in column2 that aren't in column1.
    SELECT column2 FROM query2 
    WHERE column2 NOT IN (SELECT column1 FROM query1);
    
    -- Values common to both column1 and column2
    SELECT q1.column1 FROM query1 q1
    INNER JOIN query2 q2 ON (q1.column1 = q2.column2);
    

    これを1つのステートメントで実行して、視覚的に比較することもできます。 FULL OUTER JOIN 両方の列にすべての値を返し、同じ行に値が一致し、NULL 一方の列にもう一方の列の値がありません。

    SELECT q1.column1, q2.column2 FROM query1 q1
    FULL OUTER JOIN query2 q2 ON (q1.column1 = q2.column2);
    



    1. MySQLキャッシングが発生していますか、それを修正する方法は?

    2. キーによって日付範囲の行を生成する方法

    3. MySQLピボットテーブル-行から列へ。クエリ

    4. 別のテーブルから参照されていないテーブルのすべてのレコードを削除する