sql - 比较 postgres 数据库中的两列
问题描述
我对一个看似简单的问题感到有些困惑。我有一张桌子,例如,
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;
但这只会返回 EXACT 匹配项:
column_1 | column_2
---------------------
Atlanta | Atlanta
解决方案
你只需要一个自我加入:
SELECT c1.column_1, c2.column_2
FROM cities c1
JOIN cities c2
ON c1.column_1 = c2.column_2
推荐阅读
- processing - 无法对非静态字段 Population.gen 进行静态引用
- c# - 如何确定 C# 库类的“使用”声明
- r - 可视化文本数据的分散
- android - 在销毁 BroadcastReceiver 警报之前等待 AsyncTask 完成
- ruby-on-rails - Rails 5:生成回形针迁移项目图像错误
- c# - .Net Core Web Api 项目无法使用 Visual Studio 代码进行调试
- java - 在 SuperClass Vs Subclass 中创建子类对象的区别
- java - 无法切换到父窗口说窗口已关闭
- javascript - 在 JavaScript 中没有弹出窗口阻止程序干预的情况下将超时弹出窗口作为新窗口打开
- python - 在 Django 中加载机器学习项目时出现值错误 Tensorflow