Объединение общих значений в SQL

#mysql #sql

#mysql #sql

Вопрос:

Скажем, например, у меня есть следующая таблица (полная соединений между элементами)

 connectionA    ConnectionB
   887             225
   129             887
   225             887
   887             562
   562             887
  

Как я могу использовать SQL, чтобы найти все строки, в которых оба A соединены с B и наоборот. Запрос вернет (дублирование не допускается):

 connectionA    ConnectionB
   887             225
   887             562
  

Ответ №1:

 SELECT T1.connectionA, T1.connectionB
FROM yourtable T1
JOIN yourtable T2
ON T1.connectionA = T2.connectionB
AND T2.connectionA = T1.connectionB
WHERE T1.connectionA > T1.connectionB