Различий в производительности нет.
Однако первый стиль - ANSI-89, и в некоторых магазинах вам сломают ноги.Включая мою.Второй стиль - ANSI-92, он намного понятнее.
Примеры:
Что такое JOIN, а какой фильтр?
FROM T1,T2,T3....
WHERE T1.ID = T2.ID AND
T1.foo = 'bar' AND T2.fish = 42 AND
T1.ID = T3.ID
FROM T1
INNER JOIN T2 ON T1.ID = T2.ID
INNER JOIN T3 ON T1.ID = T3.ID
WHERE
T1.foo = 'bar' AND T2.fish = 42
Если у вас есть OUTER JOINs(=*
, *=
), тогда второй стиль будет работать так, как объявлено.Первый, скорее всего, не будет и также не рекомендуется в SQL Server 2005 +
Стиль ANSI-92 также сложнее для болликса.Со старым стилем вы можете легко получить декартово произведение (перекрестное соединение), если вы пропустите условие.Вы получите синтаксическую ошибку с ANSI-92.