Разница между USING и ON в JOIN-запросах заключается в том, что ON позволяет указывать любое соответствие (разные имена колонок), а USING — указывать список столбцов, которые должны существовать в обеих таблицах. 1 При этом имена полей в обоих случаях должны полностью совпадать. 1
Таким образом, ON подходит, когда нужно присоединить столбцы с различными именами, а USING — когда имена столбцов одинаковые. 13
Кроме того, с ON можно выполнить больше операций, например присоединить не только колонку, но и набор колонок или даже целое условие. 1
Ещё одно преимущество USING — при перечислении полей в запросе не обязательно указывать префикс. 1 Если не перечислять поля явно, а использовать SELECT * для соединения столбцов, то в результирующем наборе при ON колонка появится дважды, а с USING — только раз. 1