В основному різниця між двома полягає в тому, що одна написана по-старому, а інша написана сучасним способом. Особисто я віддаю перевагу сучасному сценарію, використовуючи внутрішнє, ліве, зовнішнє, праве визначення, оскільки вони більш пояснювальні та роблять код більш читабельним.
При взаємодії з внутрішніми з'єднаннями немає ніякої реальної різниці в читабельності, однак це може ускладнитися при роботі з лівими та правими з'єднаннями, оскільки в старій методиці ви отримаєте щось подібне:
SELECT *
FROM table a, table b
WHERE a.id = b.id (+);
Наведене - це старий спосіб написання лівого з'єднання на відміну від наступного:
SELECT *
FROM table a
LEFT JOIN table b ON a.id = b.id;
Як візуально бачите, сучасний спосіб написання сценарію робить запит більш читабельним. (До речі, це стосується правильних з'єднань і трохи складніше для зовнішніх з'єднань).
Повертаючись до пластини котла, це не має значення для компілятора SQL, як запитується запит, оскільки він обробляє їх однаково. Я бачив поєднання обох в базах даних Oracle, в яких багато людей записували, як старші, так і молодші. Знову ж таки, це зводиться до того, наскільки читабельний сценарій та команда, з якою ви розвиваєтеся.