powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / "сломался" left join
4 сообщений из 4, страница 1 из 1
"сломался" left join
    #37978179
skibars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос для опытных.
дано: долгое время в базах работали запросы с left join вида

select a.* from staj a left join staj b on a.sn=b.sn where a.tp=1 and b.tp=2 and b.sn is null
т.е. для tp=1 строка в таблице есть, а для tp=2 - нет.
Сегодня обнаружилось, что это не работает, т.е. не выдаёт строк.
Версия 9.7, ставилась давненько, вроде весной был апгрейд с 8.1 или 8.2
Из последних событий была перезагрузка сервера на днях. И фсё!

Массивы данных велики, поэтому переделка запроса на "not in ..." - не выход.
Сегодня перезагрузка сервера ситуации не изменила.
Что это может быть и как возможно исправить?
...
Рейтинг: 0 / 0
"сломался" left join
    #37978230
skibars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
обнаружил, что работает только другой вариант, например,

select nifull from zl a left join (select sn from staj where tp=2) b on nifull=sn where sn is null
...
Рейтинг: 0 / 0
"сломался" left join
    #37978318
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skibars,

Если задача была:
"найти в таблице staj (sn, tp) все записи с tp=1 для которых по такому же sn нет записей с tp=2"
то запрос:
Код: sql
1.
2.
3.
4.
select a.* 
from staj a 
left join staj b on a.sn=b.sn 
where a.tp=1 and b.tp=2 and b.sn is null

никогда и не должен был что-то возвращать.

Можно так:
Код: sql
1.
2.
3.
4.
select a.* 
from staj a 
left join staj b on a.sn=b.sn on b.tp=2
where a.tp=1 and b.sn is null;

или так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select a.* 
from staj a 
where a.tp=1 
and not exists (
select 1 
from staj b 
where a.sn=b.sn and b.tp=2
);
...
Рейтинг: 0 / 0
"сломался" left join
    #37978596
skibars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
благодарю за варианты. да, это я нахимичил, пробовал... там не будет работать по-любому.
Но исходный (не показанный) запрос с update не пашет всё равно. Хотя годами работал
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / "сломался" left join
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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