Además de las respuestas anteriores, un La diferencia importante es que la cláusula ON conserva las columnas de cada tabla unida por separado, y la cláusula USING fusiona las columnas de las tablas combinadas en una única columna. Esto puede ser importante si, por ejemplo, desea mantener las filas en su conjunto de resultados solo si no existe una fila coincidente en una de las tablas unidas. Para ello, habitualmente se utiliza una combinación externa, junto con una condición en la cláusula WHERE, como
SELECT t1.*
FROM TABLE_1 t1
LEFT OUTER JOIN TABLE_2 t2
ON (t2.KEY_FIELD = t1.KEY_FIELD)
WHERE t2.KEY_FIELD IS NULL
En este caso, el supuesto es que TABLE_2.KEY_FIELD es parte de la clave principal en table_2, y por lo tanto, nunca puede ser NULL si los datos están realmente presentes en TABLE_2. Si, después de la unión anterior, se encuentra que TABLE_2.KEY_FIELD contiene NULL en el conjunto unido, significa que no se encontró ninguna fila TABLE_2 que coincida con la fila TABLE_1 correspondiente. Esto a veces puede ser útil.
Comparte y disfruta.
[La documentación es bastante buena] (http://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqljusing.html) –