Может быть, слишком сложное название.В основном подумайте о почтовом ящике.У меня есть таблица так:
![alt text](https://i.stack.imgur.com/KwTc2.png)
Как вы можете видеть, это рекурсивная таблица, очень простая, просто с parentID сообщения, и, как вы можете видеть с помощьюзеленое кольцо выделения, конец «цепочки» - это когда NULL для parentID.
Мне нужно предоставить (например) INBOXID 12 и вернуть обратно всех родителей.в этом примере я должен получить обратно 1 запись с INBOXID, равным 11.
Во втором примере я должен быть в состоянии передать INBOXID, равный 9, но на этот раз я должен вернуть строки INBOXID 8,7 и 1
У меня был некоторый успех со следующим запросом:
with q as
(
select inboxid, parentid
from bizzbox
union all
select a.inboxid, a.parentid
from bizzbox a
inner join q on q.inboxID = a.parentID
)
select distinct * from q
.. но, конечно, он возвращает всех родителей для любой из строк ... Я знаю, что это, вероятно, что-то действительно глупо простоекак предложение where для одного из операторов select, но, попробовав его (т. е. для параметризации передачи inboxid начальной точки), я не могу понять, что мне нужно делать ???
Anyпомощь очень ценится !!!!!Дэвид.