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是等价的