Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
Тани
Member

Откуда:
Сообщений: 5
Добрый день))))
Требуется написать универсальный SQL-запрос для выборки данных из таблицы с древовидной структурой, чтобы определить, является ли узел X предком потомку Y, таким образом, чтобы его без дополнительного редактирования можно было использовать в SQL Server 2000/2005/2008, MySQL, Pl/SQL.
Это вообще реально?
13 янв 10, 08:19    [8174928]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31219
Тани
Требуется написать универсальный SQL-запрос для выборки данных из таблицы с древовидной структурой, чтобы определить, является ли узел X предком потомку Y, таким образом, чтобы его без дополнительного редактирования можно было использовать в SQL Server 2000/2005/2008, MySQL, Pl/SQL.
Это вообще реально?
Конечно, реально. Только схему данных соответствующую нужно выбрать.
13 янв 10, 08:22    [8174935]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
Тани
Member

Откуда:
Сообщений: 5
P.S. Если можно, приведите, пожалуйста, пример такого запроса
13 янв 10, 08:22    [8174936]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
Тани
Member

Откуда:
Сообщений: 5
alexeyvg
Конечно, реально. Только схему данных соответствующую нужно выбрать.


Подскажите, пожалуйста, какую схему данных в таком случае нужно выбрать?
13 янв 10, 08:29    [8174950]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
aleks2
Guest
Тани
alexeyvg
Конечно, реально. Только схему данных соответствующую нужно выбрать.


Подскажите, пожалуйста, какую схему данных в таком случае нужно выбрать?


Абстрактного сферического коня в вакууме.

Нету такой схемы и не напишите. Ибо реляционность отрицает древовидность.
13 янв 10, 09:02    [8175043]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31219
Тани
alexeyvg
Конечно, реально. Только схему данных соответствующую нужно выбрать.


Подскажите, пожалуйста, какую схему данных в таком случае нужно выбрать?
Например:
1. дерево Joe Celko
2. доп. таблица со всеми предками каждого элемента
3. доп. поле с полным путём

Поищите на этом форуме, например это, или эта статья
13 янв 10, 09:12    [8175072]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31219
alexeyvg
Например:
1. дерево Joe Celko
2. доп. таблица со всеми предками каждого элемента
3. доп. поле с полным путём
Да, ещё забыл - несколько left join при небольшом и ограниченным максимальном количестве уровней дерева - тоже очень хорошее и универсальное решение.

aleks2
Абстрактного сферического коня в вакууме.

Нету такой схемы и не напишите. Ибо реляционность отрицает древовидность.

Ну, это слишком категорично, эдак вообще программировать не получится :-)
13 янв 10, 09:16    [8175080]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
Тани
Member

Откуда:
Сообщений: 5
aleks2

Нету такой схемы и не напишите. Ибо реляционность отрицает древовидность.

и всетаки основной вопрос то был в другом:
Тани

универсальный SQL-запрос для выборки данных из таблицы с древовидной структурой, чтобы определить, является ли узел X предком потомку Y, таким образом, чтобы его без дополнительного редактирования можно было использовать в SQL Server 2000/2005/2008, MySQL, Pl/SQL.
Это вообще реально?
P.S. Если можно, приведите, пожалуйста, пример такого запроса
13 янв 10, 09:19    [8175092]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
а можно увидеть скрипт создания "таблицы с древовидной структурой"?
Или вам как раз он и нужен?
13 янв 10, 09:54    [8175218]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
Тани
Member

Откуда:
Сообщений: 5
-=DiM@n=-


CREATE TABLE [tree] (
[id] [int] NOT NULL ,
[parent] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[id]
) ON [PRIMARY] ,
FOREIGN KEY
(
[parent]
) REFERENCES [tree] (
[id]
)
) ON [PRIMARY]
GO
13 янв 10, 11:20    [8175807]     Ответить | Цитировать Сообщить модератору
 Re: Универсаньный запрос для SQL Server, MySQL, Pl/SQL  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
http://rsdn.ru/article/db/db_nav1.xml
13 янв 10, 11:37    [8175965]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить