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