Добавить к ответам уже дано:
select * from A, B
Это был единственный способ присоединения до стандарта SQL 1992 года. Поэтому, если вы хотите внутреннее объединение, вы должны будете использовать условие WHERE
для критериев:
select * from A, B
where A.x = B.y;
Одна проблема с этим синтаксисом заключалась в том, что не было стандарта для внешних объединений. Другая причина заключалась в том, что это становится нечитаемым для многих таблиц и, следовательно, подвержено ошибкам и менее обслуживаемо.
select * from A, B, C, D
where B.id = C.id_b
and C.id_d = D.id;
Здесь мы имеем перекрестное соединение A с B / C / D. Нарочно или нет? Может быть, программист просто забыл and B.id = A.id_b
(или что-то в этом роде), или, возможно, эта строка была удалена по ошибке, и, возможно, все-таки это действительно было перекрестное соединение. Кто мог сказать?
Здесь то же самое с явными объединениями
select *
from A
cross join B
inner join C on C.id_b = B.id
inner join D on D.id = C.id_d;
Больше нет сомнений в намерениях программистов.
Старый синтаксис, разделенный запятыми, был заменен по уважительным причинам и больше не должен использоваться.