|
В чём разница между ПО и ГДЕ в запросе |
☑ |
0
repin_mike
10.03.23
✎
09:01
|
В чём разница между конструкциями
ВЫБРАТЬ * ИЗ А ЛЕВОЕ СОЕДИНЕНИЕ Б ГДЕ УСЛОВИЕ
ВЫБРАТЬ * ИЗ А ЛЕВОЕ СОЕДИНЕНИЕ Б ПО УСЛОВИЕ
По идее второе работает быстрее, но это не точно
|
|
1
Asmody
10.03.23
✎
09:02
|
У вас точно 8 лет стажа на форуме?
|
|
2
Mort
10.03.23
✎
09:05
|
Если бы внутреннее соединение было, тогда можно было бы поразмышлять о переносе условий из ГДЕ в ПО для оптимизации, а так тупо разные результаты будут.
|
|
3
butterbean
10.03.23
✎
09:39
|
что-то я видимо подзабыл синтаксис, но разве возможно СОЕДИНЕНИЕ без ПО?
|
|
4
Fedor-1971
10.03.23
✎
09:41
|
(0) так то нет
ВЫБРАТЬ * ИЗ А ЛЕВОЕ СОЕДИНЕНИЕ Б ГДЕ УСЛОВИЕ = ВЫБРАТЬ * ИЗ А ЛЕВОЕ СОЕДИНЕНИЕ Б по истина ГДЕ УСЛОВИЕ - т.е. к каждой записи таблицы А приклеивается вся таблица Б
ВЫБРАТЬ * ИЗ А ЛЕВОЕ СОЕДИНЕНИЕ Б ПО УСЛОВИЕ - к записи таблицы А соответствующей Условие приклеиваются записи из таблицы Б соответствующие тому же Условие (в результате прилепляем 0 или больше записей)
ВЫБРАТЬ * ИЗ А внутреннее СОЕДИНЕНИЕ Б ПО УСЛОВИЕ - вот это имеет смысл сравнивать по быстродействию с условием заданным в ГДЕ. Быстродействие будет очень зависеть от объёма данных в выборках А и Б до определённого объёма может быстрее работать ВНУТРЕННЕЕ СОЕДИНЕНИЕ чем ГДЕ, а возможен и обратный результат
|
|
5
Fedor-1971
10.03.23
✎
09:42
|
4+ только замер покажет что быстрее на твоих данных
|
|
6
Asmody
10.03.23
✎
09:59
|
(3) полное соединение получится.
|
|
7
exwill
10.03.23
✎
10:07
|
(6) Получится произведение таблиц, а не полное соединение. Это разные вещи. При полном соединении NULL может появиться и "справа" и "слева". При левом только "слева". При внутреннем, а также при произведении NULL нигде не появляется
|
|
8
mikecool
10.03.23
✎
10:14
|
(1) лучше поздо, чем никогда
|
|
9
АгентБезопасной Нацио
10.03.23
✎
10:42
|
(0) Это не предел
(8) иногда лучше никогда.
|
|
10
PR
10.03.23
✎
10:54
|
(0) В чём разница между конструкциями
Мне привезли будку для собаки, которую зовут Шарик
Я пошел погулять с собакой, которую зовут Шарик
По идее второе работает быстрее, но это не точно
|
|
11
exwill
10.03.23
✎
11:01
|
(0)
Первая конструкция - это внутреннее соединение по заданному условию. NULL тут появиться не может.
Вторая - это левое соединение по заданному условию. Тут может быть NULL "справа".
|
|