日期:2014-05-19  浏览次数:20901 次

SQL 多表关联 中,左表右表指哪些表?
大家好请帮我个问题,我想了没想好,想得到一个肯定的答案!先谢谢了!

左表右表指哪些表?
select   *   from  
table_1   as   a   inner   join   table_2   as   c
on
a.id=b.id  
inner   join   table_3   as   c
on
b.isbn=c.isbn  


疑问中............
第一种认为:
认为最左边的表左表   table_1
右表就是除了左表的其它表,而不是最右边的表
所以这里的左表是   table_1,那右表是table_2,table_3

第二种认为:
table_1   是table_2的左表,table_2是table_3的左表

还请牛人指点!



------解决方案--------------------
外连接才分吧
------解决方案--------------------
楼主

table_1 左连接 table_2 以table_1为基础进行连接运算,得到新表(#table)。
#table 右连接 table_3 以table_3为基础进行连接运算,得到最终结果。

左右表很重要吗?
------解决方案--------------------
第一个inner join 你可以把 table_1 看作 table_2 的左表 .
然后第一个inner 完了后 会有一个临时表
你可以把这个临时表看做 table_3 的左表.


table_1 left join table_2 table_1是table_2的左表
(table_1 left join table_2) a left join table_3 on a.???=table_3.???
a 是table_3的左表...
------解决方案--------------------
火鸡的回答是正确的,在查询里是把一个一个表不停地join进来组成一个很大的结果集,但组成结果集的同时,SQL还记得里面的每一个字段是从哪一个表来的,有时我们在join 的时候以表的名字或别名作为连接条件,主要原因还是不同的表可能有相同的字段,否则我们可以直接写字段的名字不用写表名
------解决方案--------------------
不是以on 的关联条件来决定,是关联的关键字左右来决定的。
------解决方案--------------------
table1 left join table2 和 table2 right join table1是等价的