|
|
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, Не знаю какой стоял на той работе Мускуль, но точно из 5.1. ... года 4 назад. Не работало. Это нормальная практика в MS ACCESS и я ей активно пользовался. Был удивлен что тут "так низзя". С тех пор больше не проверял. Щас стоит 5.5. и 5.6 ... не начем. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2015, 12:56:08 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
svnvladmiksoftНо лично я написал бы через два LEFT JOIN-а, потому как в объемных запросах слишком неожиданно встретить два ON подряд, особенно, когда их JOIN на экран выше. LEFT JOIN-ы медленней работают, чем INNER JOIN.Не совсем так. Если данные в таблицах дают одинаковый результат для LEFT JOIN и INNER JOIN и если направление соединения таблиц в INNER JOIN совпадает с направлением LEFT JOIN, то одинаково. (Что весьма вероятно в случае топикстартера). В остальных случаях, да, LEFT JOIN может быть медленнее, чем INNER JOIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2015, 13:02:17 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvladпропущено... LEFT JOIN-ы медленней работают, чем INNER JOIN.Не совсем так. Если данные в таблицах дают одинаковый результат для LEFT JOIN и INNER JOIN и если направление соединения таблиц в INNER JOIN совпадает с направлением LEFT JOIN, то одинаково. (Что весьма вероятно в случае топикстартера). В остальных случаях, да, LEFT JOIN может быть медленнее, чем INNER JOIN. ДАЁШЬ ЗАПРЕТ LEFT JOIN ! Пора положить конец этому тормозу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2015, 15:15:22 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
Я не понимаю - какой прок от более быстрого запроса, если он даёт не то, что требуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2015, 16:19:01 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
AkinaЯ не понимаю - какой прок от более быстрого запроса, если он даёт не то, что требуется? Зато он быстрый! Предлагаю вообще все запросы в БД заменять на Код: sql 1. Будет мегасупербыстро! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2015, 13:09:59 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
MasterZivmiksoftпропущено... Не совсем так. Если данные в таблицах дают одинаковый результат для LEFT JOIN и INNER JOIN и если направление соединения таблиц в INNER JOIN совпадает с направлением LEFT JOIN, то одинаково. (Что весьма вероятно в случае топикстартера). В остальных случаях, да, LEFT JOIN может быть медленнее, чем INNER JOIN. ДАЁШЬ ЗАПРЕТ LEFT JOIN ! Пора положить конец этому тормозу!поддерживаю! Тем более что FULL JOIN уже запрещен видимо тоже по причине крайней тормознутости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2015, 15:49:01 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
alex564657498765453я вот одного не понял Т1 - план прибытия автомобилей - arrives T2 - car_drivers T3 - cars T4 - drivers. вот в упор не понимаю почему 4 таблицы. если за машиной закреплён водитель один, то Т2 ненужно если это некая компания, и на каждую поездку(одна запись в прибытие) делается связь водитель-машина, всёравно не понятно зачем Т2 а уж почему Т1 и Т2 связаны, совсем загадка. За машиной закреплен водитель, но водитель может поменяться, так же как и пересесть на другую машину или уволиться. Связь многие-ко-многим. Но в основном один водитель закреплен за одной машиной. Т2 - чтобы выбирать сразу водитель-машина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 03:24:19 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
AkinaЯ не понимаю - какой прок от более быстрого запроса, если он даёт не то, что требуется? В данном случае как раз дает. Зачем плодить лишние LEFT, если по логике там однозначное жесткое соответствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 03:25:30 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
Добрый Э - ЭхsvnvladМожно ли сделать без скобок? Код: plaintext я же тебе показал вложенные джойны, без скобок.:Добрый Э - Эхsvnvlad, используй вложенность при написании джойнов: Код: sql 1. 2. 3. 4. 5. 6. чем-то не устроило? Кстати, заметил, что если внешний LEFT JOIN заменить на INNER JOIN, то сервер выдает ошибку. И нигде нет информации о вложенных джойнах (по поиску в интернете). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 04:46:47 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
svnvladКстати, заметил, что если внешний LEFT JOIN заменить на INNER JOIN, то сервер выдает ошибку.о которой мы должны догадаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 06:23:21 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
svnvladзаметил, что если внешний LEFT JOIN заменить на INNER JOIN, то сервер выдает ошибку. Это не потому, что запрос получается синтаксически неверным, а потому, что ты при замене ещё где-то накосорезил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 09:20:15 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
svnvladВ данном случае как раз дает.Запрос - это расчётное отражение бизнес-логики. При левом и при внутреннем связываниях логика - разная. И если два РАЗНЫХ запроса ВДРУГ один раз дают одинаковые выходные наборы - это не значит, что запрос верный. И не значит, что выходные наборы ВСЕГДА будут одинаковыми и, главное, верными. Это всего лишь ещё одно подтверждение правила, что "есть категория граждан, которым везёт". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 09:24:06 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
AkinasvnvladВ данном случае как раз дает.Запрос - это расчётное отражение бизнес-логики. При левом и при внутреннем связываниях логика - разная. И если два РАЗНЫХ запроса ВДРУГ один раз дают одинаковые выходные наборы - это не значит, что запрос верный. И не значит, что выходные наборы ВСЕГДА будут одинаковыми и, главное, верными. Это всего лишь ещё одно подтверждение правила, что "есть категория граждан, которым везёт". Я не понял, к чему вы придираетесь. Если вы про категорию граждан, то это не про меня, я понимаю отличие Inner от Left. Но в данном случае бизнес логика задает жесткую связь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 16:03:33 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
Akinasvnvladзаметил, что если внешний LEFT JOIN заменить на INNER JOIN, то сервер выдает ошибку. Это не потому, что запрос получается синтаксически неверным, а потому, что ты при замене ещё где-то накосорезил. А вы попробуйте. Тот же самый запрос, но внешний JOIN вместо LEFT поставьте INNER. Уже встречал на просторах сети такую же жалобу. Этот запрос выдает нормальный результат Код: sql 1. 2. 3. 4. 5. А этот выдает ошибку Код: sql 1. 2. 3. 4. 5. MySQL ServerYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON cd.id = ac.car_driver_id' at line 5 (0,531 сек) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 16:09:49 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
svnvladЭтот запрос выдает нормальный результат svnvladА этот выдает ошибку Используя недокументированные способности парсера, не надо сильно наглеть, полагая, что будут корректно обработаны любые возможные комбинации. Корректная обработка вложенных джойнов - конечно, фича, но ненадёжная. Вспомните введение приоритета джойна над запятой или позиционной зависимости разбора натуральных джойнов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 18:38:52 |
|
||
|
Запрос с LEFT JOIN + INNER JOIN
|
|||
|---|---|---|---|
|
#18+
svnvladalex564657498765453я вот одного не понял Т1 - план прибытия автомобилей - arrives T2 - car_drivers T3 - cars T4 - drivers. вот в упор не понимаю почему 4 таблицы. если за машиной закреплён водитель один, то Т2 ненужно если это некая компания, и на каждую поездку(одна запись в прибытие) делается связь водитель-машина, всёравно не понятно зачем Т2 а уж почему Т1 и Т2 связаны, совсем загадка. За машиной закреплен водитель, но водитель может поменяться, так же как и пересесть на другую машину или уволиться. Связь многие-ко-многим. Но в основном один водитель закреплен за одной машиной. Т2 - чтобы выбирать сразу водитель-машина. А ведь бывают еще машины, за которыми закреплены экипажи... Из нескольких человек, не обязательно из двух... И водители в этих экипажах тоже могут (теоретически) меняться друг с другом рейсами... Впрочем, это все в ТЗ - есть/нет/пофиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 19:41:11 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38875314&tid=1833576]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 325ms |

| 0 / 0 |
