再求一SQL语句,关于left join and right join 相关,请求(maco_wang 叶子)帮助.

Comment:
SQL里的 left join ,只是以左边表的相关(KEY)记录数 >= 右边表的相关(key)记录数,以左表为主
否则 右边的数据会丢失.




sql 里的right join 只是以右边表(key) 记录数 =< 左边表(Key)的记录数 ,是以右表为主.
否则左边表的数据会丢失.


这样一来,问题就来了,

在TableA 与TableB 中,如果A表中有的关键字段记录数>=B, 而也有记录A =<B ,
那么用left join ,right join ,都会造成数据丢失.

请问如何处理?

我要的结果类似于:
Ident FieldA FieldB
 1 A1 B1
 2 A1 null  
 3 A1 B1
 4 A2 B2
 5 null B2
 6 A2 B2 

作者: lvtao_cn   发布时间: 2011-06-15

这种情况用full join

作者: FlySQL   发布时间: 2011-06-15

FULL JOIN=LEFT JOIN+RIGHT JOIN

作者: fredrickhu   发布时间: 2011-06-15

引用 1 楼 flysql 的回复:

这种情况用full join

是的

作者: aspwebchh   发布时间: 2011-06-15

SQL code
select  isnull(a.Ident,b.Ident) as Ident,a.FieldA ,b.FieldB
from a
full join b on a.a.Ident=b.Ident

作者: FlySQL   发布时间: 2011-06-15

SQL code
full join 
--全连接即可

作者: maco_wang   发布时间: 2011-06-15