Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
Вниз2 запроса в Firebird 1.5 Найти похожие ветки
← →
DROWSY (2010-06-12 19:43) [0]В таблице Main есть два внешних ключа (D1, D2) к таблице Dep.
Объясните пожалуйста, почему запросы:
1.
select поля Main,поля Dep, поля Dep1
from Main
inner join Dep on (Main.D1 = Dep.code)
inner join Dep Dep1 on (Main1.D2 = Dep1.code)
и
2.
select поля Main,поля Dep, поля Dep1
from Main
inner join Dep Dep1 on (Main1.D2 = Dep1.code)
inner join Dep on (Main.D1 = Dep.code)
дают разные результаты?
← →
turbouser © (2010-06-12 19:49) [1]
> DROWSY (12.06.10 19:43)
Потому что использовать алиасы надо правильно!
В FB2 вообще запретили смешивать использование запросов с алиасами и без. И это правильно.
← →
Anatoly Podgoretsky © (2010-06-12 19:57) [2]Но он утверждает, что они были исполнены, а не запрещены.
Но конечно алиасы надо использовать, только потом можно о чем то говорить. И конечно смотреть планы.
← →
DROWSY (2010-06-12 19:59) [3]Спасибо!
(странно, что IBExpert, хотя бы warring не даёт)
← →
turbouser © (2010-06-12 20:01) [4]
> DROWSY (12.06.10 19:59) [3]
>
> Спасибо!
>
> (странно, что IBExpert, хотя бы warring не даёт)
>
Ничего странного. В FB1.5 еще было можно.
← →
DROWSY (2010-06-12 20:01) [5]
> Anatoly Podgoretsky © (12.06.10 19:57) [2]
> Но он утверждает, что они были исполнены, а не запрещены.
>
Да, они исполняются, но с "нужными" результатами только 2-ой.
← →
DROWSY (2010-06-12 20:18) [6]В случае 2), видимо, второй алиас создаётся планировщиком "по умолчанию",
а в 1)-ом соединениеinner join Dep Dep1 on (Main.D2 = Dep1.code)
вообще игнорируется.
← →
DROWSY (2010-06-12 20:21) [7]Так:
select поля Main,поля Dep, поля Dep1
from Main
inner join Dep Dep1 on (Main.D1 = Dep1.code)
inner join Dep Dep2 on (Main.D2 = Dep2.code)
замечательно работает.
Ещё раз, спасибо, turbouser.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c