NATURAL JOINを知り始めたばかりで、SQLiteは期待どおりに動作していません。
SELECT * FROM r1 NATURAL JOIN (r2 NATURAL JOIN r3);
と
SELECT * FROM (r1 NATURAL JOIN r2) NATURAL JOIN r3;
同じ(正しい)結果を生成します。
ただし、次のように括弧を省略した場合:
SELECT * FROM r1 NATURAL JOIN r2 NATURAL JOIN r3;
r1とr2は正しく結合されていますが、r3は結果にまったく結合されておらず、代わりにr1 NATURAL JOIN r2、r3のデカルト積が形成されています。
最初の結合結果の属性名に問題がありますか、それともSQLを誤って解釈していますか?