Имя: Пароль:
1C
 
В чём разница между ПО и ГДЕ в запросе
,
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 "справа".