powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Left join
3 сообщений из 3, страница 1 из 1
Left join
    #32331644
ENN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему в запросе во втором JOIN неправильно
выбизается значения во всем запросе одинаковое название
Mol.Nm_Pdr


SELECT
d.IdReNo_, ( d.Kol_r_u + d.Kol_r_a / d.Upak ) * .ce_ra, nm_nmr,
ce_ra, '3', No_Nmk, s.Gr_Tvr, u.Pod_ie, Mol.Nm_Pdr,
cast( No_Dkt as char(8)) ,u.D_R
FROM m00140 u, M00141 d
LEFT join M00151 S on S.IdReNo_=d.No_Nmk
LEFT join M00102 Mol on u.Pod_ie=Mol.SH_POD
where d.SupNom = u.IdReNo_


u.Pod_ie char 5 mol.SH_pod char 5 Кодировки одинаковые WIN1251
...
Рейтинг: 0 / 0
Left join
    #32331663
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю что за проблема, но нельзя смешивать соединения SQL89 и SQL92. От этого оптимизатор колбасит. Поэтому или только через запятую, или только джойны:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT 
d.IdReNo_, ( d.Kol_r_u + d.Kol_r_a / d.Upak ) * .ce_ra, nm_nmr, 
ce_ra, '3', No_Nmk, s.Gr_Tvr, u.Pod_ie, Mol.Nm_Pdr, 
cast( No_Dkt as char( 8 )) ,u.D_R 
FROM m00140 u
join M00141 d on d.SupNom = u.IdReNo_ 
LEFT join M00151 S on S.IdReNo_=d.No_Nmk 
LEFT join M00102 Mol on u.Pod_ie=Mol.SH_POD 
...
Рейтинг: 0 / 0
Left join
    #32331740
ua-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ENN

Потому-то второй join относится к первой таблице и ставит его нужно после нее

plan join также не помешает
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Left join
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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