我有一张表如下
UserID CONSUMERID
1 2
1 3
1 4
5 1
这是一个查阅列,用户可以在此处使用。
我需要查询表并获得单个列输出,以便例如如果ID = 1,我应该能够查询userid并获取userid = 1的所有consumnerid数据,同时查询获取所有userid数据,其中consumerid = 1 ..所有结果应该在一列中。换句话说,将两列都查询为1并返回相反的列值。
答案 0 :(得分:3)
使用UNION
(隐式DISTINCT)或UNION ALL
,如下所示:
SELECT UserId FROM table WHERE ConsumerId = 1
UNION ALL
SELECT ConsumerId FROM table WHERE UserID = 1;
答案 1 :(得分:0)
你可以在没有联合的情况下做到这一点,只需使用逻辑:
select (case when UserId = 1 then Consumerid else UserId end) as id
from t
where UserId = 1 or ConsumerId = 1