Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
2-1274947026
Dzmitry
2010-05-27 11:57
2010.09.12
A call to an OS function failed


2-1276678632
Desyatnik
2010-06-16 12:57
2010.09.12
Динамические запросы


2-1276964759
DiamondeX
2010-06-19 20:25
2010.09.12
Режим выбора пользователя


15-1276723981
KilkennyCat
2010-06-17 01:33
2010.09.12
Грамотный перевод AutoExpand?


15-1276424776
George
2010-06-13 14:26
2010.09.12
Шифрование на Delphi и PHP




   Наверх