Pan*_*sis 5 sql sqlite natural-join inner-join
我刚刚开始了解 NATURAL JOIN 并且 SQLite 并没有像我期望的那样运行。
SELECT * FROM r1 NATURAL JOIN (r2 NATURAL JOIN r3);
Run Code Online (Sandbox Code Playgroud)
和
SELECT * FROM (r1 NATURAL JOIN r2) NATURAL JOIN r3;
Run Code Online (Sandbox Code Playgroud)
产生相同(正确)的结果。
但是,如果我省略括号,如下所示:
SELECT * FROM r1 NATURAL JOIN r2 NATURAL JOIN r3;
Run Code Online (Sandbox Code Playgroud)
我看到 r1 和 r2 连接正确,但是 r3 根本没有连接到结果,而是形成了 r1 NATURAL JOIN r2, r3 的笛卡尔积。
第一个连接结果的属性名称是否存在问题,还是我误解了 SQL?