【问题标题】:Comparing two columns in postgres database比较 postgres 数据库中的两列
【发布时间】:2018-11-07 14:51:49
【问题描述】:

我对一个看似简单的问题感到有些困惑。我有一张桌子,例如,

CREATE TABLE cities (
     column_1 TEXT,
     column_2 TEXT);

这些表格的内容是什么样的

column_1  |  column_2
---------------------
Atlanta   |  Atlanta
Boston    |  Chicago
Chicago   |  Los Angeles
Seattle   |  Tacoma
NULL      |  Seattle

我可以运行什么查询来查看这两列,不管它们的顺序如何,返回两列匹配的位置?

我正在寻找的结果是:

column_1  |  column_2
---------------------
Atlanta   |  Atlanta
Chicago   |  Chicago
Seattle   |  Seattle

我试过了:

SELECT *
FROM cities
WHERE column_1 = column_2;

但这只会返回精确匹配:

column_1  |  column_2
---------------------
Atlanta   |  Atlanta

【问题讨论】:

    标签: sql postgresql comparison


    【解决方案1】:

    你只需要一个自我加入:

    SELECT c1.column_1, c2.column_2
    FROM cities c1
    JOIN cities c2
        ON c1.column_1 = c2.column_2
    

    【讨论】:

    • 谢谢!当它允许我时,我会赞成这个作为答案(它给了我 8 分钟的超时时间)。
    【解决方案2】:

    您的查询询问的是 column_1 == column_2 在同一行中的位置。如果要检索两列中存在的所有城市实例,则需要像这样进行自联接。

    SELECT t1.column_1, t2.column_2
    FROM cities t1 join cities t2 on (t1.column_1 = t2.column_2)
    

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2011-11-28
      • 2023-03-08
      • 2011-05-29
      • 2015-06-25
      • 1970-01-01
      相关资源
      最近更新 更多