select a.*,b.* from TA a left join TB b on a.RID = b.RID
=
select b.*,a.* from TB a right join TA b on a.RID = b.RID select a.*,b.* from TA a left join TB b on a.RID = b.RID
的b.*可能为null哈,哈哈,哈哈哈......
=
select b.*,a.* from TB a right join TA b on a.RID = b.RID select a.*,b.* from TA a left join TB b on a.RID = b.RID
的b.*可能为null哈,哈哈,哈哈哈......
right join 是取右边的所有这两个是相对表的位置来说的select a.*,b.* from TA a left join TB b on a.RID = b.RID
与
select a.*,b.* from TB a left join TA b on a.RID = b.RID 前者是取 TA 表所有的记录+TB 表与之 RID 匹配的记录
后者是取 TB 表所有的记录+TA 表与之 RID 匹配的记录
与
select a.*,b.* from TB a left join TA b on a.RID = b.RID
的不同:
1、字段次序不同(不解释)
2、纪录不同
select a.*,b.* from TA a left join TB b on a.RID = b.RID
包含TA有TB没有的RID
select a.*,b.* from TB a left join TA b on a.RID = b.RID
包含TB有TA没有的RID
哈,哈哈,哈哈哈......
与
select a.*,b.* from TB b right join TA a on a.RID = b.RID
一样
select a.*,b.* from TA a right join TB b on a.RID = b.RID
与
select a.*,b.* from TB a left join TA b on a.RID = b.RID
一样
select a.*,b.* from TA a left join TB b on a.RID = b.RID
TA表中的數據肯定會全部顯示出來﹐而TB表只有符合條件才選出來﹐不符合的用null填a.id,a.name,b.id,b.name
1 aaa 1 bbb
2 xxx 2 qqq
3 kkk null null
。
。。
查詢的結果大概是上面的樣子
与
select a.*,b.* from TB a left join TA b on a.RID = b.RID
有什么不同使用left join 时:from 子句为主表,即保证了主表的数据完整性,left join 后是连表, 也做附加信息表,但得到的数据都是以from 子句的主表,来附加从表的信息。使用right join时:与left join 正好反之,但用法是一样的。from接的是从表