Идентификаторы в двух столбцах - найти один идентификатор и получить другой идентификатор - PullRequest
0 голосов
/ 28 июня 2019

Этот вопрос, возможно, задавался раньше, но я не нашел его.У меня есть таблица PostgreSQL с идентификаторами в двух столбцах.

user_left | user_right | 
-----------+------------
   1      |       2    | 
   2      |       3    | 
   4      |       2    | 

Если я выберу пользователя 2, я хотел бы вернуть что-то вроде:

users | 
------+
   1  | 
   3  |  
   4  |

Я знаю, что мне придется что-то join, но что яя пытался (inner joins, outer joins) сбить меня с толку.Любая помощь или направление приветствуется.

1 Ответ

0 голосов
/ 28 июня 2019

Вот один метод:

select user_left
from t
where user_right = 2
union all
select user_right
from t
where user_left = 2;

Вы также можете использовать выражение case:

select (case when user_left = 2 then user_right else user_left end)
from t
where 2 in (user_left, user_right);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...