首先创建A,B,C三张表如下:
-
SQL> select * from A;
-
-
ID M
-
---------- ------
-
1 A
-
2 B
-
3 C
-
4 D
-
5 E
-
-
SQL> select * from B;
-
-
ID N
-
---------- ------
-
1 A
-
2 B
-
3 C
-
-
SQL> select * from C;
-
-
ID K
-
---------- ------
-
1 A
-
2 B
-
3 C
-
4 D
表进行连接后如下:
-
SQL> select A.*,B.*,C.* from A left join B on A.id = B.id join C on B.id = C.id;
-
-
ID M ID N ID K
-
---------- ------- ------- ------
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
-
-
SQL> select A.*,B.*,C.* from A left join B on A.id = B.id left join C on B.id = C.id;
-
-
ID M ID N ID K
-
---------- ------- ------- ------
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
-
4 D
-
5 E
-
SQL> select A.*,B.*,C.* from A left join B on A.id = B.id left join C on A.id = C.id;
-
-
ID M ID N ID K
-
---------- ------- ------- -----
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
-
4 D 4 D
-
5 E
-
-
SQL> select A.*,B.*,C.* from A left join B on A.id = B.id join C on A.id = C.id;
-
-
ID M ID N ID K
-
---------- ------- ------- ------
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
-
4 D 4 D
由上明显可以看出,如果A left join B 后,B left join C 和 B join C 是不相同的,B 和 C 的关联条件不同数据也不相同;
实验一:
-
SQL> select B.*,C.*,A.* from B left join C on B.id = C.id join A on C.id = A.id;
-
-
ID N ID K ID M
-
---------- ------- ------- ------
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
-
-
SQL> select B.*,C.*,A.* from B left join C on B.id = C.id left join A on C.id = A.id;
-
-
ID N ID K ID M
-
---------- ------- ------- ------
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
实验一可以看出,在(数据量上B
实验二:
-
SQL> select C.*,B.*,A.* from C left join B on B.id = C.id join A on B.id = A.id;
-
-
ID K ID N ID M
-
---------- ------- -------- ------
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
-
-
SQL> select C.*,B.*,A.* from C left join B on B.id = C.id left join A on B.id = A.id;
-
-
ID K ID N ID M
-
---------- ------- -------- ------
-
1 A 1 A 1 A
-
2 B 2 B 2 B
-
3 C 3 C 3 C
-
4 D
实验二可以看出,此时在(表数据多少A>B>C,你懂的!)后面一个 left join 和 join 效果并不相同。
综上如果要保证主表的数据量不变,最好都写上 left join,否则数据量会有很大差别的哦!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29668428/viewspace-1292041/
,如需转载,请注明出处,否则将追究法律责任。