如何比较postgres中的两个表

jni*_*ddy 3 postgresql

我想比较来自两个不同查询的两个列值.任何人都可以建议一个查询比较Postgres中的两列?

Mik*_*ll' 10

嗯,最容易理解 - 但不一定是最快 - 可能是这样的.(但你可能通过"比较"来表示别的东西.)

-- 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);
Run Code Online (Sandbox Code Playgroud)

您也可以在一个语句中执行此操作,以进行视觉比较.A FULL OUTER JOIN返回两列中的所有值,同一行中的匹配值,以及NULL一列缺少另一列中的值.

SELECT q1.column1, q2.column2 FROM query1 q1
FULL OUTER JOIN query2 q2 ON (q1.column1 = q2.column2);
Run Code Online (Sandbox Code Playgroud)