powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / задачка (можно ли как-то иначе)
2 сообщений из 27, страница 2 из 2
задачка (можно ли как-то иначе)
    #39514783
prokop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если допустить что t1 обладает первичным ключом или rowid'ом то мне кажется так будет проще и нагляднее:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select *
  from t2
 where (f1,f2) in (select l.g1, r.g2
                     from t1 l
                          join t1 r
                            on (1=1)
                    group by l.g1, r.g2 
                   having max(case when l.rowid = r.rowid then 1 end) is null)
...
Рейтинг: 0 / 0
задачка (можно ли как-то иначе)
    #39515852
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxboobyStax,
красиво крестишь.
Но в скобках, сдается, and должен быть в таком случае.

да вроде нет
t2.f1=t1.f1 And t2.f2=t3.f2 and NOT (t1.f1=t3.f1 and t1.f2=t3.f2)

t1.f1=t3.f1 and t1.f2=t3.f2 совпадение строк
(можно было ровиды сравнить (<>), но во вюшке rowida нет)

.....
stax

Вот именно.
Код: plsql
1.
NOT (t1.f1=t3.f1 and t1.f2=t3.f2) 


отбросит только такие истории, в которых выполнены оба равенства одновременно.

А нас как будто не интересуют все случаи совпадения на любом плече креста
(как противоречащие условию не попадания в множество запрещенных пар).
Поэтому
Код: plsql
1.
2.
3.
4.
5.
t2.f1=t1.f1 And t2.f2=t3.f2 And Not (t1.f1=t3.f1 Or t1.f2=t3.f2)
=>
t2.f1=t1.f1 And t2.f2=t3.f2 And (t1.f1<>t3.f1 And t1.f2<>3.f2)
=>
t2.f1=t1.f1 And t2.f2=t3.f2 And (t1.f1<>t3.f1 And t1.f2<>3.f2)



PS Извини за задержку с ответной реакцией.
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / задачка (можно ли как-то иначе)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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