Это вопрос удобства. Не обязательно , но оно должно иметь свое место, например, в интерактивных запросах (во всяком случае, каждое нажатие клавиши приближает нас к RSI), или в некоторых простых случаях написанного от руки SQL даже в рабочем коде (да, я это написал. И даже видел JOIN USING
в серьезном коде, написанном не только мной, но и другими мудрыми программистами. Но я отвлекся).
Я нашел этот вопрос, когда искал подтверждение, что в SS отсутствует эта функция, и получил его. Меня только смущает количество ненависти к этому синтаксису, которое я приписываю синдрому кислого винограда. Я чувствую удивление, когда меня читают с покровительственным тоном Сладости (читай: синтаксический сахар) вредно для вашего здоровья. Вам все равно это не нужно.
Что приятно в синтаксисе JOIN USING
, так это то, что он работает не только с именами столбцов , но и с псевдонимами столбцов , например:
-- foreign key "order".customerId references (customer.id)
SELECT c.*, c.id as customerId, o.* from customer c
join "order" o using (customerId);
Я не согласен с "Присоединиться лучше, если только (...)" . Или аргумент, что вам могут понадобиться более сложные условия. С другой точки зрения, зачем использовать JOIN ON
? Почему бы не быть чистым и перенести все условия в предложение WHERE
?
SELECT t1.*, t2.* from t1, t2 where t2.t1_id = t1.id;
Теперь я могу сойти с ума и поспорить, насколько это самый чистый способ выражения объединения, и вы можете сразу же начать добавлять дополнительные условия в предложение where, которые вам обычно все равно нужны, бла-бла-бла ...
Так что вам не следует слишком сильно упускать этот конкретный синтаксис, но не за что радоваться тому, что его нет ( "Фу, это было близко. Так хорошо, что не было ПРИСОЕДИНЯТЬСЯ К ИСПОЛЬЗОВАНИЮ. Меня очень пощадили боли ").
Итак, хотя я лично использую JOIN ON
99% времени, я не чувствую никакого Schadenfreude, когда нет JOIN USING
или NATURAL JOIN
.