Задавайте вопросы, мы ответим
Вы не зашли.
необходимо составить запрос. Имеется oдна таблица, при изменении записи, создается новая запись с новым ИД, a в специальном поле (OrgID) прописывается ИД предыдущей записи:
Id Name OrgId Status
1 Record1 NULL NotActive
2 Record2 1 NotActive
3 Record1 2 Active
4 MyRecord NULL NotActive
5 MyRecord 4 Active
6 Record23 NULL NotActive
7 Record23 6 NotActive
8 Record23 7 Deleted
9 deletMBC NULL Deleted
10 zazazaz NULL Active
11 uio NULL NotActive
12 uio 11 NotActive
13 MyName 12 Active
статус для старой записи становится - NotActive.
Вопрос, как имея ИД Активной записи найти все предыдущие??
Неактивен
Не очень понятно, что значит найти все предыдущие. Вы имели в виду предыдущие с тем же именем, что и у активной записи или?..
Если просто найти все предыдущие, то
Отредактированно deadka (23.04.2011 09:55:34)
Неактивен
Например:
Была запись с ID -> 11. Потом в записи были сделаны изменения и запись получила новый ID ->12 (старый ID сохранен в поле OrgID). Дальше этой же записи изменили имя и запись опять получила новый ID (ID предыдущей версии сохранен в OrgID). Мне надо вывести всю историю зная ID последней записи. Спасибо.
Неактивен
Возможно ошибаюсь, но имхо задачу в такой постановке только что хранимой процедурой с рекурсией ( для вывода всей истории) писать придётся. Ну или на клиенте серией запросов.
Отредактированно deadka (23.04.2011 15:44:40)
Неактивен
На самом деле, это дерево, у которого не бывает более одной ветки из узла.
Следовательно, будут работать стандартные денормализации для деревьев
(левое-правое и табличка «все родители»).
Неактивен