Я обнаружил это неожиданное поведение с SQLite. Похоже, что SQLite принимает произвольные ключевые слова в синтаксисе соединения SQL. Если я случайно наберу nautral join вместо natural join , то получится декартово произведение. Это ожидаемое поведение, функция или ошибка?
select count(*) from pri; -- 22
select count(*) from sec; -- 57458
select count(*) from pri natural join sec; -- 57458
select count(*) from pri nautral join sec; -- 1264076
select count(*) from pri advanced natural join sec; -- 57458
select count(*) from pri imaginary join sec; -- 1264076
Протестировано с SQLite 3.7.3 на Debian 6.0 и SQLite 3.7.5 на Windows 7.
Добавить: SQLite - отличное программное обеспечение для работы с базами данных, и я рекомендую его для небольших и средних проектов. Вот мое краткое сравнение SQLite и PostgreSQL.