Разница между оператором NATURAL JOIN и использованием ON в PostgreSQL заключается в том, как происходит соединение таблиц. 15
ON определяет наиболее общую форму условия соединения. 2 В нём указываются выражения логического типа, подобные тем, что используются в предложении WHERE. 2 Пара строк из таблиц соответствует друг другу, если выражение ON возвращает для них true. 2
NATURAL JOIN — это сокращённая форма оператора USING. 23 Он не указывает, какие столбцы нужно сопоставить. 1 Вместо этого PostgreSQL автоматически соединяет таблицы на основе всех столбцов, которые имеют совпадающие имена в каждой базе данных. 1
Таким образом, ON требует явного указания условия соединения, а NATURAL JOIN позволяет автоматически сопоставлять столбцы с одинаковым именем в двух таблицах. 5