Как найти «противоположные» записи на MySQL? - PullRequest
0 голосов
/ 17 марта 2019

У меня есть 1 таблица со следующими столбцами:

giver_id | receiver_id
   10    |     12
    9    |     10
   10    |     20
   12    |     10

Я ищу запрос mysql, который вернет 10-12 / 12-10 в качестве совпадения.

Спасибо

1 Ответ

3 голосов
/ 17 марта 2019

Чтобы определить записи, для которых существует «противоположная» запись, вы можете сделать:

SELECT * 
FROM mytable t
WHERE EXISTS (
    SELECT 1 
    FROM mytable t1 
    WHERE t1.giver_id = t.receiver_id AND t.giver_id = t1.receiver_id 
)

Это демо на БД Fiddle с вашими примерами данныхвозвращает:

| giver_id | receiver_id |
| -------- | ----------- |
| 10       | 12          |
| 12       | 10          |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...