powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / left join во view и naturalы
8 сообщений из 8, страница 1 из 1
left join во view и naturalы
    #32230611
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется, или если во вьюхе есть лефт джоин, то в дургой вьюхе, когда присоединяется первая вьюха, в плане появляется natural перебор?

я так понимаю, это из-за того, что в поле ко которому присоединяется вьюха могут быть нуллы.

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

// все таки полпятого утра...
...
Рейтинг: 0 / 0
left join во view и naturalы
    #32230612
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarWind, я знаю, ты не спишь, напиши мне че-нибудь? ;)
...
Рейтинг: 0 / 0
left join во view и naturalы
    #32230615
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он кластер собирает :-)
...
Рейтинг: 0 / 0
left join во view и naturalы
    #32230627
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пока думаю, а не собираю

ну если на вскидку.... по вьюхе не может быть индекса.... по этому и приходится перебирать натуралом...
может стоит запросы обоих вьюх засунуть в одну?
кстате, есть альтернатива left join ричем более быстрая...
...
Рейтинг: 0 / 0
left join во view и naturalы
    #32230837
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarWind, какая альтернатива?

насколько мне объясняли, при использовании представления используются индексы лежащих под ним таблиц - ведь иначе это был бы неэффективный инструмент
...
Рейтинг: 0 / 0
left join во view и naturalы
    #32231634
MrAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком запросе FB не дает использовать план для внешнего SELECT.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT * FROM  "A" 
 WHERE  "A" . "ID" <> 5 
    AND  "A" . "Code"  NOT IN 
       (SELECT DISTINCT  "B" . "IDRepCode"  
        FROM  "B" 
        WHERE  "B" . "PerType" =:Per
          AND  "B" . "PerDate" =:Dt 
          AND  "B" . "IDAblist" =:Abon 
          AND  "B" . "Form" =:Frm) 


Т.е. для SELECT * FROM "A" всегда используется НАТУРАЛ... При явном указании ПЛАНа (с указанием индексов), вылазит сообщение, что такой ПЛАН в запросе использовать нельзя.
...
Рейтинг: 0 / 0
left join во view и naturalы
    #32231737
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
избавился от лефт джоинов и все натуралы пропали.

так шта, дети, не делайте вьюхи с лефт джоинами, если не собираетесь искать в них нулл!

// Бивис, ты, эта, не натурал :)
...
Рейтинг: 0 / 0
left join во view и naturalы
    #32232370
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри что поздно
но в качестве альтернативы могу предложить следующее (тока надо подумать, по мойму есть случаи когда не работает... или нету..)

Код: plaintext
1.
2.
3.
4.
5.
select
 T1.F1,
 (select T2.F1 from Table2 T2 where T2.id = T1.id),
 (select T3.F1 from Table3 T3 where T3.id = T1.id),
from Table1 T1


Вот таким образом можно присоеденить две таблицы к первой. Вроде как по логике получается left join. Правда юзал я его в качестве join'а. Все устраивало, скорость была выше. Один недостаток вспомнил, на версии IB6.02, при запихивании этот запрос во view необходимо давать привелегию юзеру на селект и table2 и table3. Для обычного join этого не требуется.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / left join во view и naturalы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]