|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
Как можно переписать запрос, если нет возможности использовать в left join - OR with tb1 as (select 1 a, 2 b, 3 c from dual union all select 4, 5, 6 from dual union all select 7, 8, 9 from dual union select 80, 88, 10 from dual union select 24, 88, 64 from dual union select 733, 88, 10 from dual union select 456, 99, 7575 from dual union select 1001, 90921, 75751 from dual), tb2 as (select 1 a, 2 b , 3 c from dual union select 5, 3, 1 from dual union select 8, 8, 9 from dual union select 73, 88, 10 from dual union select 100, 929, 7575 from dual union select 1001, 9092, 75751 from dual) select tb1.a, tb1.b, tb1.c, tb2.a, tb2.b, tb2.c from tb1 left join tb2 on (tb1.b = tb2.b or tb1.c = tb2.c and tb1.a = tb2.a) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2019, 18:32 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
nc1318, есть такой вариант, но правильно ли он будет рабоать : with tb1 as (select 1 a, 2 b, 3 c from dual union all select 4, 5, 6 from dual union all select 7, 8, 9 from dual union select 80, 88, 10 from dual union select 24, 88, 64 from dual union select 733, 88, 10 from dual union select 456, 99, 7575 from dual union select 1001, 90921, 75751 from dual), tb2 as (select 1 a, 2 b , 3 c from dual union select 5, 3, 1 from dual union select 8, 8, 9 from dual union select 73, 88, 10 from dual union select 100, 929, 7575 from dual union select 1001, 9092, 75751 from dual) select * from tb1 left join ( select tb1.a a1, tb1.b b1, tb1.c c1 from tb1 join tb2 on tb1.b = tb2.b union select tb1.a a1, tb1.b b1, tb1.c c1 from tb1 join tb2 on tb1.c = tb2.c and tb1.a = tb2.a ) tb2 on tb2.a1 = tb1.a and tb2.b1 = tb1.b and tb2.c1 = tb1.c ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2019, 18:54 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2019, 20:35 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
nc1318нет возможности использовать в left join - OR Это как так? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 14:01 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
andrey_anonymousnc1318нет возможности использовать в left join - OR Это как так?Возможно студенту в одно ухо влетело про ограниечение на оракловый синтаксис джоина, а в другое задача на внешнее соединение. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 14:10 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
andrey_anonymous, интересно как это можно реализовать ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 14:28 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
nc1318интересно как это можно реализовать Что реализовать? Запрос из Вашего первого поста вроде работает (Oracle 11), что требуется и что не работает - вот лично мне совершенно не понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 14:31 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
nc1318интересно как это можно реализоватьЕсли это спортивный интерес, то любое выражение булевой логики можно реализовать без OR. Если не спортивный, то 21993232 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 14:37 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
-2-nc1318интересно как это можно реализоватьЕсли это спортивный интерес, то любое выражение булевой логики можно реализовать без OR. Оно, конечно, действительно: Код: plsql 1. 2. 3. 4.
но от ora-01719 на родном оракловом синтаксисе это не спасает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 16:21 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
andrey_anonymous, Остаётся благодарить небеса, что в подобных случаях засовывание в case спасает. Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 17:27 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
КобанчегОстаётся благодарить небеса, что в подобных случаях засовывание в case спасает. Это же не спортивно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 17:30 |
|
Нет возможности использовать в left join - OR
|
|||
---|---|---|---|
#18+
andrey_anonymousКобанчегзасовывание в case спасает. Это же не спортивно :) Только decode, только хардкор! Код: plsql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 17:40 |
|
|
start [/forum/topic.php?fid=52&fpage=64&tid=1881981]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 154ms |
0 / 0 |