4

次のようなテーブルがあります

UserID  CONSUMERID
1          2
1          3
1          4
5          1

これはルックアップ列であり、ユーザーはここで消費者になることができます。
テーブルをクエリして単一の列出力を取得する必要があるため、たとえば ID = 1 の場合、userid をクエリして、userid = 1 のすべての消費者 ID データを取得し、同時に、consumerid = 1 のすべてのユーザー ID データをクエリで取得できるようにする必要があります。 .. すべての結果が 1 つの列に表示されます。つまり、両方の列で 1 をクエリし、反対の列の値を返します。

4

2 に答える 2

3

UNION(暗黙のDISTINCT)またはを使用UNION ALLします。

SELECT UserId FROM table WHERE ConsumerId = 1
UNION ALL
SELECT ConsumerId FROM table WHERE UserID = 1;

SQLフィドルデモ

于 2012-11-30T12:45:10.353 に答える
0

論理を使用するだけで、ユニオンなしでこれを行うことができます。

select (case when UserId = 1 then Consumerid else UserId end) as id
from t
where UserId = 1 or ConsumerId = 1
于 2012-11-30T14:21:22.980 に答える