soweit ich das sehe, kann man in der from clause von der ersten ANSI Spezifikation (SQL 89) eine Liste von Tabellen, Views, Ausdrücken die ein ResultSet liefern angeben. Das wird dann als Cross join interpretiert, der in der where clause eingegrenzt werden kann.

Mit SQL 92 sind dann die ersten join Konstrukte dazugekommen. Die sind gemeint, wenn man von ANSI join spricht.

Die old style Variante existiert nebenher und wird es wohl auch weiterhin tun.

Der Mix aus old style und ANSI ist durchaus legal und geht auch unter V7 noch.
(select *
from
sysibm.sysdummy1 a
, sysibm.sysdummy1 b
join sysibm.sysdummy1 c on 1 = 1)

Ich bin immer für Einfachheit und Klarheit und empfehle die ANSI join Form. (Beide nebeneinander zu verwenden ist nur was für Leute, die Gürtel und Hosenträger tragen.)
- ANSI join kann alles, was old style kann
- old style kann nicht alles, was ANSI kann
=> ANSI join ist der Weg!

Was die Quellen angeht: Leider ist an die offiziellen ANSI SQL Dokus offiziell nur gegen größere Mengen Geldes zu kommen.

D*B