Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

2 запроса в Firebird 1.5 [D6, XP]


DROWSY ©   (2010-06-12 19:43:00) 

В таблице 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)



дают разные результаты?


DROWSY   (2010-06-12 20:21:00) [1]

Так:
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.


DROWSY   (2010-06-12 20:18:00) [2]

В случае 2), видимо, второй алиас создаётся планировщиком "по умолчанию",
а в 1)-ом соединение
inner join Dep  Dep1  on (Main.D2  = Dep1.code)
вообще игнорируется.


turbouser   (2010-06-12 20:01:00) [3]


> DROWSY   (12.06.10 19:59) [3]
>
> Спасибо!
>
> (странно, что IBExpert, хотя бы warring не даёт)
>

Ничего странного. В FB1.5 еще было можно.


DROWSY   (2010-06-12 20:01:00) [4]


> Anatoly Podgoretsky ©   (12.06.10 19:57) [2]
> Но он утверждает, что они были исполнены, а не запрещены.
>

Да, они исполняются, но с "нужными" результатами только 2-ой.


DROWSY   (2010-06-12 19:59:00) [5]

Спасибо!

(странно, что IBExpert, хотя бы warring не даёт)


Anatoly Podgoretsky   (2010-06-12 19:57:00) [6]

Но он утверждает, что они были исполнены, а не запрещены.
Но конечно алиасы надо использовать, только потом можно о чем то говорить.  И конечно смотреть планы.


turbouser   (2010-06-12 19:49:00) [7]


> DROWSY   (12.06.10 19:43)  

Потому что использовать алиасы надо правильно!
В FB2 вообще запретили смешивать использование запросов с алиасами и без. И это правильно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо