两列中的ID-查找一个ID并检索其他ID

时间:2019-06-28 02:23:32

标签: sql postgresql join

这个问题可能以前曾被问过,但我还没有找到。我有一个ID为两列的PostgreSQL表。

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

如果我选择用户2,我想返回以下内容:

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

我知道我将不得不join进行某些操作,但是我尝试过的操作(inner joinsouter joins)使我感到困惑。任何帮助或指导表示赞赏。

1 个答案:

答案 0 :(得分:0)

这是一种方法:

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