セイtheoritcally我々は(いくつかのテストデータとの)試合にテーブルを求めている:SQLで相互Tinderマッチングを選択する方法は?
create table matches (
user_id int,
target_id int
);
INSERT INTO matches VALUES (1,2);
INSERT INTO matches VALUES (2,1);
INSERT INTO matches VALUES (3,5);
INSERT INTO matches VALUES (4,1);
INSERT INTO matches VALUES (1,4);
INSERT INTO matches VALUES (5,3);
INSERT INTO matches VALUES (5,4);
INSERT INTO matches VALUES (4,5);
INSERT INTO matches VALUES (1,3);
INSERT INTO matches VALUES (1,5);
INSERT INTO matches VALUES (6,1);
INSERT INTO matches VALUES (6,2);
INSERT INTO matches VALUES (6,3);
INSERT INTO matches VALUES (6,4);
INSERT INTO matches VALUES (6,5);
INSERT INTO matches VALUES (6,6); // me_irl
したがって、このテストデータセットのために、我々は以下の相互のThe Tinderの試合を期待してください:
1,2
4,1
5,3
5,4
どのように私は希望SQLでこれを選択しますか?これは、どのようなSQLクエリが返すある
select A.user_id A, B.user_id B from
matches as A
inner join
matches as B
on A.user_id = B.target_id
where A.user_id = B.target_id
and B.user_id = A.target_id
:
A B
1 2
1 4
2 1
3 5
4 1
4 5
5 3
5 4
あなたが重複(すなわち、1,4と4,1)を排除するべき 'A FDavidov