Member 11337367 Ответов: 3

Пожалуйста, скажите мне, является ли этот запрос правильным способом написания?


Я только что наткнулся на следующий запрос, написанный каким - то старшим парнем. Теперь у меня есть сомнения в том, что этот способ написания запроса является правильным и влияет ли он на какую-либо производительность..?Пожалуйста, помогите мне понять эти понятия.

(выберите * из таблицы 1) один
левое внешнее соединение (выберите * из табл. 2) b на b.column1=a.column1

Что я уже пробовал:

пожалуйста, помогите мне.Запрос, который я предоставил, является всего лишь примером реального запроса.

3 Ответов

Рейтинг:
2

Pradeep Arthanari

Синтаксис должен быть таким:

select * from table1 a left outer join table2 b on a.column1=b.column1


Maciej Los

А синтаксис - де - факто-таков, как вы упомянули. Скобки ничего не меняют.

Рейтинг:
0

CPallini

Цитата:
Теперь у меня есть сомнения в том, что этот способ написания запроса является правильным и влияет ли он на какую-либо производительность..?
Для этого нет ничего лучше документации, понимаете
Использование Внешних Соединений[^]. После того, как вы установили правильность подхода, вы можете исследовать производительность. Вы можете найти много, много, много ресурсов, доступных в интернете.


Member 11337367

Спасибо за ваш ответ.У меня есть хороший опыт работы с sql, я знаю синтаксис соединений.Здесь я сомневаюсь, что программист использовал скобки для одной таблицы, например
(выбрать * из таблица1) в
левое внешнее соединение (выберите * из таблицы 2) ..

вместо того чтобы писать вот так

выбрать * из таблица1 в
присоединяйтесь таблица2 б...

Maciej Los

5ed! Чтение документации - это всегда хорошая идея.

Рейтинг:
0

Maciej Los

Да, приведенное выше утверждение sql абсолютно верно. Карло прав, вы должны прочитать документацию. Основным отличием является:

MSDN писал:
Внутренние соединения возвращают строки только тогда, когда есть хотя бы одна строка из обеих таблиц, соответствующая условию соединения. Внутренние соединения исключают строки, которые не совпадают со строкой из другой таблицы. Однако внешние соединения возвращают все строки хотя бы из одной таблицы или представления, упомянутого в предложении FROM, при условии, что эти строки удовлетворяют любым условиям поиска where или HAVING. Все строки извлекаются из левой таблицы, на которую ссылается левое внешнее соединение, и все строки из правой таблицы, на которые ссылаются в правом внешнем соединении. Все строки из обеих таблиц возвращаются в полном внешнем соединении.


Для получения более подробной информации и "визуализации", пожалуйста, смотрите: Визуальное представление SQL-соединений[^]