【问题标题】:How to compare two tables in postgres如何比较postgres中的两个表
【发布时间】:2011-06-16 10:07:33
【问题描述】:

我想比较来自两个不同查询的两个列值。谁能建议一个比较 Postgres 中两列的查询?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    嗯,最容易理解的——但不一定是最快的——可能是这样的。 (但您可能通过“比较”表示其他意思。)

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

    您也可以在单个语句中执行此操作,以便进行直观比较。 FULL OUTER JOIN 返回两列中的所有值,在同一行中具有匹配的值,NULL 在其中一列缺少另一列中的值。

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

    【讨论】:

    • 这很好,但我的意思是通过比较我们不能比较两列
    • @jnivasreddy:可能,但我们需要您发布一些示例数据,包括您期望的输入和输出,以明确您正在寻找什么。您可以编辑原始问题。最后键入或复制和过去的示例数据。突出显示示例数据,然后单击“{}”以保留其格式。
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多