PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So vergleichen Sie zwei Tabellen in Postgres

Nun, am einfachsten zu verstehen – aber nicht unbedingt am schnellsten – ist wahrscheinlich so etwas. (Aber Sie könnten etwas anderes mit "vergleichen" meinen.)

-- 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);

Sie können dies auch in einer einzigen Anweisung tun, um einen visuellen Vergleich zu erhalten. Ein FULL OUTER JOIN gibt alle Werte in beiden Spalten zurück, mit übereinstimmenden Werten in derselben Zeile und NULL wobei in einer Spalte ein Wert fehlt, der in der anderen Spalte steht.

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