Помогите составить запрос.

Aly

Новичок
Помогите составить запрос.

Имеется таблица отношений вида:
ид1 ид2
1 2
3 2
5 2
4 1
1 3
6 3
3 5

требуется вытащить все данные по (допустим ид=1)в которых имеется следующая связь:
1 2 (в таблице есть связь 1 с 2 поэтому, вытаскиваем все связи 2 с %)
2 1 (прямая связь с изначальным ид не интересует)
2 3 (не подходит т.к. с ид=3 у ид=1 имеется прямая связь)
2 5 (ид=5 подходит)

1 4 (у ид=4 связей нет, поэтому сдесь пусто)

1 3
3 6 (ид=6 подходит)
3 5 (не подходит т.к. ид=5 уже встречалось)
3 2 (у ид=1 имеетсай прямая связь с ид=2)

на выходе в данномпримере выдаст ид=5 и ид=6.
Мдее объяснение не самое лучшее, но надеюсь смысл понятен.
Конечено это можно сделать в цикле но нет ли возможности составить 1 запрос? :/
 

Dreammaker

***=Ф=***
не совсем понятно. можно как-то задачу объясниь не абстрактно, а на конкретном примере привязанном к реальности. Случайно не дерево хочешь построить?
 

Aly

Новичок
дерево хмм. Кстате это дело можно представить ввиде дерева!
А пример в принципе и есть реальный.
Попробую представить это ввиде дерева на основе вышеупомянутой таблици.

если 1 явлается корнем то:
2,4,3 будут промежуточными вершинами
у вершини 2
листя: 1,3,5; 1 неподходит т.к. является корнем, 3 неподходит т.к. имеется такая вершина
у вершини 4
листя: нету;
у вершини 3
листя: 1,6,5; 1 неподходит т.к. является корнем, 5 неподходит т.к. такой лист уже найден

Может так будет понятней!?
 
Сверху