USING в SQL: Как я узнал об этом спустя 2 года работы с БД

Важно начать с того, что я не позиционирую и никогда не позиционировал себя как мега-эксперт в SQL. Я знаю его достаточно хорошо для выполнения всех рабочих задач, и объяснения синтаксиса и логики работы языка во время менторства. Но… Хочу поделиться прошлогодним открытием, которое меня удивило.

Что мы делаем, когда надо объединить 2 таблицы? Я всегда использовал стандартный способ объединения таблиц через JOIN, явно указывая условие с ON. Но вот в начале прошлого года я узнал, что если колонки в обеих таблицах имеют одинаковое имя, можно упростить запрос с помощью USING.

Обычный JOIN Если у нас есть таблицы users и orders, то для объединения по колонке user_id мы пишем:

SELECT users.username, orders.order_id, orders.total FROM users JOIN orders ON users.user_id = orders.user_id;

Что такое USING? Теперь тот же запрос можно написать так:

SELECT users.username, orders.order_id, orders.total FROM users JOIN orders USING (user_id);

SQL сам поймёт, что нужно объединить по колонке user_id, и не нужно писать длинное условие.

Почему это удобно? 1.Чище код — меньше дублирования. 2.Убираются лишние колонки — с USING колонка объединения выводится только один раз. 3.Меньше ошибок — не нужно вручную прописывать одинаковые колонки в условии.

Почему я узнал об этом так поздно? Ответ прост: если названия колонок разные - USING использовать не получится. У меня просто не было таблиц, где объединение происходило бы по полю, названному одинаково.

USING в SQL: Как я узнал об этом спустя 2 года работы с БД | Сетка — социальная сеть от hh.ru