У меня есть таблица friends
, как показано ниже
+------+--------+
| Name | Friend |
+------+--------+
| A | B |
| B | C |
| D | B |
| D | C |
| A | E |
| E | Z |
+------+--------+
Я хочу получить друга друга для каждого друга.
Для этого я написал следующий запрос
SELECT a.Name as Friend,b.Friend as FOF
FROM friends a
JOIN friends b
ON a.Friend = b.Name
С этим запросом я получаю частично правильный вывод, как показано ниже
+--------+-----+
| Friend | FOF |
+--------+-----+
| A | C |
| D | C |
| A | Z |
+--------+-----+
В выводе я получаю C
как friend of friend
из D
. (Потому чтоD
является другом B
, а C
является другом B
), но C
также является прямым другом D
.
Поэтому я хочу обновить запрос, чтобы исключить friend of friend
которые также являются прямыми друзьями