Поскольку это - забавная забавная забава. Интересно не волноваться о выделении памяти для одного. Интересно, не ожидающая компиляции. и т.д. и т.д. и т.д.
OUTER
действительно лишнее, как вы пишете, поскольку все соединения OUTER
либо LEFT
, либо RIGHT
, и соответственно все соединения LEFT
или RIGHT
являются OUTER
. Синтаксически это, как вы выразились, в основном шум. Это необязательно даже в ISO SQL. Что касается того, почему люди его используют, я полагаю, некоторые считают необходимым настаивать на том, чтобы соединение было ВНЕШНИМ
, даже если ключевое слово left-or-right уже говорит об этом. В этом отношении INNER
также является лишним!
ДА
На мой взгляд, это просто проясняет ситуацию - чем яснее и очевиднее вы излагаете свои намерения, тем лучше (особенно для тех, кто попытается прочитать и понять ваш код позже).
Но это только мое мнение - технически это не требуется,
Нет. Я использую
Для меня нет двусмысленности.
Я использую «внутреннее соединение», «левое соединение», «правое соединение» и «полное внешнее соединение». "присоединиться" без "внутреннего" для меня несколько неоднозначно; «left» и «right» информативны, а «full» - такой зверь, что заслуживает особого синтаксиса :)
Это просто вопрос вкуса, я полагаю, что люди используют его, потому что считают, что это приводит к более читаемому коду. Например, я предпочитаю использовать также необязательное ключевое слово AS, поскольку SELECT ... FROM table AS t
выглядит более читаемым, чем SELECT ... FROM table t
для меня.
Несколько месяцев, проведенных в Stackoverflow, показали мне, сколько SQL написано и / или поддерживается людьми, не имеющими никакого отношения к SQL или реляционным базам данных.
По этой причине. , Я думаю, что чем более откровенным вы можете быть, тем лучше будет следующий программист, глядя на ваш код.
Я сам использую ключевое слово OUTER
. Я согласен, что это всего лишь вопрос вкуса, но мне кажется, что его пропускание кажется немного небрежным, но не таким плохим, как пропуск ключевого слова INNER
(небрежно) или написание ключевых слов SQL в нижнем регистре (очень небрежно).
Я думаю, что в 2009 году не будет такой вещи, как переносимый SQL ... В какой-то момент вам нужно написать операторы, специфичные для СУБД (например, получение вершины N строк).
Я лично считаю синтаксис JOIN избыточным и вместо этого разделяю имена таблиц запятыми.