|
|
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
Нашел такую наглядную ссылку с иллюстрациями: https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins Возник вопрос - если right join полностью идентичен left join (с учетом зеркальности), то зачем он вообще нужен? Только для удобства или есть другие причины? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 11:53 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
Есть правши, а есть левши... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 11:59 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
То есть функциональных отличий нет и два варианта только для удобства написания запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 12:08 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
Alibek B., По сути, left и rigth и inner join - это условия нула full join'a: Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 12:16 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
Alibek B., Абстрактный случай, когда использование left и right позволяют обойтись без подзапроса. Смысла никакого, но можно сэкономить пару символов. Может быть использовано при кривой архитектуре приложения. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 12:20 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
Понятно, спасибо за пояснения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 13:02 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
envАбстрактный случай, когда использование left и right позволяют обойтись без подзапроса.Если предследуется цель видимое отсутствие подзапросов (ясное дело, что под капотом Оракл насоздает латералов), то Код: plsql 1. Скобочки можно расставить по вкусу. envМожет быть использовано при кривой архитектуре приложения.Необходимость в подобной логике едва ли говорит о кривости приложения. Другое дело, что использование left и right скорее свидетельствует о каше в голове у писателя и несколько затрудняет чтение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2017, 12:12 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
Alibek B., Если обратный цикл "идентичен с учетом зеркальности" прямому циклу, зачем он нужен? Если декремент "идентичен с учетом зеркальности", зачем он нужен? И последнее, зачем нужна операция умножение, если ее всегда можно выразить через деление (с учетом обработки нулей в знаменателях)? А что касается правого внешнего соединения, то может в редких случаях быть полезно при написании ad-hoc запросов, чтоб пощупать данные, но в хранимом коде его лучше избегать, имхо. Ну и для "симметрии". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2017, 12:14 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
Alibek B.Возник вопрос - если right join полностью идентичен left join (с учетом зеркальности), то зачем он вообще нужен? Только для удобства или есть другие причины? Есть другие причины. Гораздо чаще понимание right join понадобится в планах выполнения запросов, чем в их написании. В текущей реализации hash join в Oracle выгоднее иметь меньший датасет слева, по которому строится hash table (или build table), и больший (probe table), который потом скнируется в поисках соответствий в hash table, справа. Поэтому когда Oracle видит, что больший датасет делает left join с меньшим, то в hash join он его постарается перевернуть в right join Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2017, 17:09 |
|
||
|
Есть ли разница между left join и right join?
|
|||
|---|---|---|---|
|
#18+
A.Alibek B.Возник вопрос - если right join полностью идентичен left join (с учетом зеркальности), то зачем он вообще нужен? Только для удобства или есть другие причины? Есть другие причины. Гораздо чаще понимание right join понадобится в планах выполнения запросов, чем в их написании. В текущей реализации hash join в Oracle выгоднее иметь меньший датасет слева, по которому строится hash table (или build table), и больший (probe table), который потом скнируется в поисках соответствий в hash table, справа. Поэтому когда Oracle видит, что больший датасет делает left join с меньшим, то в hash join он его постарается перевернуть в right join Ты путаешь SQL с реальным механизмом в Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2017, 17:12 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39505519&tid=1885367]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
133ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 389ms |

| 0 / 0 |
