Форум: "Начинающим";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];
ВнизSql запрос для таблица которая связана сама с собой Найти похожие ветки
← →
Mishenka (2009-05-18 16:31) [0]Есть таблица с полями ID, ModuleName, ParentID. Таблица описывает древовидную структуру, где в поле ParentID содержится ID родительской записи из той же таблицы. Нужно написать запрос, который бы по заданному параметру ID выводил поле ModuleName и тоже поле ModuleName для родительской записи.
Пишу так:SELECT M.ModuleName, M2.ModuleName as ParentModuleName
FROM Modules M, Modules M2
WHERE (M.ParentID = M2.ID) AND (M.ID = :IDModule)
где IDModule это заданный параметр. Для дочерних записей всё работает нормально. Однако для родительских, тобишь у которых ParentID не ссылается ни на какую запись, в результате выводится пустой набор, а нужно чтоб выводилась одна запись с пустым значением поля ParentModuleName. Как изменить запрос, чтоб всё работало нормально???
← →
palva © (2009-05-18 16:39) [1]Наверно, так:
SELECT M.ModuleName, M2.ModuleName as ParentModuleName
FROM Modules M
LEFT JOIN Modules M2 ON M.ParentID = M2.ID
WHERE M.ID = :IDModule
← →
Ega23 © (2009-05-18 16:41) [2]
Select C.CatName, IsNull(C1.CatName, "") as ParCatName
from Mat$categories C left join Mat$categories C1 on (C.ParCatId=C1.CatID)
← →
Mishenka (2009-05-19 14:49) [3]Всё заработало, спасибо!
← →
Игорь Шевченко © (2009-05-19 14:53) [4]
> а нужно чтоб выводилась одна запись с пустым значением поля
> ParentModuleName. Как изменить запрос, чтоб всё работало
> нормально???
использовать OUTER JOIN ?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c