ben inteso:
SELECT * FROM miatabella JOIN altratabella ON <condizione>
equivale a:
SELECT * FROM miatabella, altratabella WHERE <condizione>
teoricamente sono la stessa cosa, di solito per comprendere un join si parte dalla seconda forma per arrivare alla prima
le prestazioni delle due forme dovrebbero equivalersi... più o meno, con l'unica differenza che la prima forma è più esplicita della seconda e quindi un database potrebbe accellerare di poco le prestazioni usando la prima. Sono mie congetture però
Io uso la prima perché è più chiara e rende il codice più leggibile separando le join dalle condizioni semplici