Поиск дублированных пар значений столбцов в таблице sql - PullRequest
0 голосов
/ 01 июля 2019

У меня есть таблица, содержащая пары для совпадений, и таблица выглядит следующим образом:

|pairing_id|player1_id|player2_id|number_of_round|
| 132      | Thomas   |  Brian   |      1        |

Я пытаюсь написать SQL-запрос, который показывает мне все избыточные пары, поэтому пары совпадаютесли имена двух игроков совпадают, но во второй раз Брайан - игрок1, а Томас - игрок2.

Таким образом, эти 2 матча совпадают, так как имена игроков совпадают:

|pairing_id|player1_id|player2_id|number_of_round|
| 132      | Thomas   |  Brian   |      1        |
| 458      | Brian    |  Thomas  |      4        |

Мне нужно найти все лишние пары в таблице, но, к сожалению, я не знаюкак запросить это.

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

Может быть сделано с EXISTS

select t1.pairing_id, t1.player1_id, t1.player2_id, t1.number_of_round
from myTable t1 
where exists (select null 
              from myTable t2 
              where t2.player1_id = t1.player2_id and t2.player2_id = t1.player1_id)
order by case when t1.player1_id > t1.player2_id then t1.player2_id else t1.player1_id end
0 голосов
/ 01 июля 2019

Вы можете сделать это с помощью exists:

select t.* from tablename t
where exists (
  select 1 from tablename
  where pairing_id <> t.pairing_id and player1_id = t.player2_id and player2_id = t.player1_id 
)
...