Сравнение двух столбцов в базе данных postgres - PullRequest
0 голосов
/ 07 ноября 2018

Я несколько озадачен кажущейся простой проблемой. У меня есть таблица, настроенная как,

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

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Ваш запрос задает вопрос, где находится column_1 == column_2 в той же строке. Если вы хотите получить все экземпляры городов, существующих в обоих столбцах, вам нужно выполнить самостоятельное объединение следующим образом.

SELECT t1.column_1, t2.column_2
FROM cities t1 join cities t2 on (t1.column_1 = t2.column_2)
0 голосов
/ 07 ноября 2018

Вам просто нужно самостоятельно присоединиться:

SELECT c1.column_1, c2.column_2
FROM cities c1
JOIN cities c2
    ON c1.column_1 = c2.column_2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...