Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
ВнизНе работает запрос... Найти похожие ветки
← →
Prooksius (2002-10-02 10:25) [0]Привет мастерам!
Есть такие таблы:
Rank (должности вообще),
VesselRank(должности на судне),
ReqRank (люди (и их должности) в заявке (не важно какой)).
Связи:
Rank - VesselRank: 1 ко многим
VesselRank - ReqRank: 1 ко многим
Такой запрос работает нормально, т.е. сортируется по R.RGrade:
select R.Name
from VesselRank VR, Rank R, ReqRank RR
where VR.VessRankID = RR.VessRankID AND R.RankID = VR.RankID
order by R.RGrade
Если добавить еще и отображение фамилий таким образом:
(связь Person - ReqRank: 1 ко многим)
select R.Name, P.LastName
from VesselRank VR, Rank R, ReqRank RR
LEFT JOIN Person P ON P.PersonID = RR.SOnPersonID
where VR.VessRankID = RR.VessRankID AND R.RankID = VR.RankID
order by R.RGrade
то сортировка order by не работает!!!
Нужно ставить LEFT JOIN, т.к. ссылка на человека RR.SOnPersonID может быть NULL.
Как быть? Такое есть только в FireBird, в IB5.6 было все в норме!
Это глюк FB, или меня где-то глючит?
Заранее спасибо.
← →
Johnmen (2002-10-02 10:39) [1]Немного философии :
Если НД сортируется по полю, которого нет в НД, то это говорит о некоторой непродуманности при создании таблиц (нормализация !).
Немного формальной логики :
Если под IB5.6 работало, а под FireBird то же самое не работает, то причина в последнем.
← →
Prooksius (2002-10-02 10:53) [2]2 Johnmen © (02.10.02 10:39)
По философии:
Ну в чем проблемы-то, просто добавить R.RGrade в select и все.
А насчет глюка в FB я и сам догадываюсь.
Просто может, кто-то сталкивался с таким и как-то поборол...
← →
Prooksius (2002-10-02 12:00) [3]В дополнение к вышесказанному.
Если отсортировать в обратном порядке
(order by R.RGrade DESC), то все работает нормально.
Это однозначно глюк FB.
Т.е., если надо получить НД с Outer Join, отсортированный по какому-либо полю (причем по некоторым полям работает нормально), то это не всегда работает, сортировка получается такая, как если бы не было order by вообще.
%*(
← →
Prooksius (2002-10-02 13:32) [4]Пришлось все-таки использовать Inner Join. Без него не работает.
Грустно, господа. Нет программ без глюков. :-(
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c