NATURAL JOIN и USING отличаются подходом к объединению столбцов в таблицах PostgreSQL. 14
USING — сокращённая запись условия, которая полезна в ситуации, когда с обеих сторон соединения столбцы имеют одинаковые имена. 1 USING принимает список общих имён столбцов через запятую и формирует условие соединения с равенством этих столбцов. 1 В результате JOIN USING выводит один столбец для каждой пары (в указанном порядке), за ними все оставшиеся столбцы из одной таблицы и, наконец, все оставшиеся столбцы из другой. 1
NATURAL JOIN — сокращённая форма USING, которая образует список из всех имён столбцов, существующих в обеих входных таблицах. 12 Как и с USING, эти столбцы оказываются в выходной таблице в единственном экземпляре. 1 Если столбцов с одинаковыми именами не находится, NATURAL JOIN действует как JOIN … ON TRUE и выдаёт декартово произведение строк. 1
Кроме того, USING защищён от изменений в соединяемых отношениях, так как связывает только явно перечисленные столбцы. 1 NATURAL JOIN считается более рискованным, так как при любом изменении схемы в одном или другом отношении, когда появляются столбцы с совпадающими именами, при соединении будут связываться и эти новые столбцы. 1