sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo comparar dos tablas en postgres

Bueno, el más fácil de entender, pero no necesariamente el más rápido, es probablemente algo como esto. (Pero podrías querer decir algo más con "comparar".)

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

También puede hacer esto en una sola declaración para darle una comparación visual. UNA FULL OUTER JOIN devuelve todos los valores en ambas columnas, con valores coincidentes en la misma fila, y NULL donde a una columna le falta un valor que está en la otra columna.

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