求一个SQL语句,分不够,以后一定补,非常感谢,很急!
a表: 
 xno   箱号   ,id   货号   ,sl   数量 
 1,a001,2 
 1,a002,3 
 3,a001,2 
 4,a008,9   
 b表: 
 xno   箱号   ,id   货号   ,sl   数量 
 1,a001,3 
 1,a002,4 
 3,a001,2 
 5,a001,6     
 求:   a.xno,a.id,a.sl,b.xno,b.id,b.sl   
 1,a001,2,1,a001,3 
 1,a002,3,1,a002,4 
 3.a001,2,3.a001,2 
 4,a008,9,null,null,null 
 null,null,null,5,a001,6
------解决方案--------------------select a.xno,a.id,a.sl from a left join b on a.xno=b.xno   
 其他的join如下例: 
 例表a  
 aid adate  
 1 a1  
 2 a2  
 3 a3  
 表b  
 bid bdate  
 1 b1  
 2 b2  
 4 b4  
 两个表a,b相连接,要取出id相同的字段  
 select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.  
 此时的取出的是:  
 1 a1 b1  
 2 a2 b2  
 那么left join 指:  
 select * from a left join b on a.aid = b.bid  
 首先取出a表中所有数据,然后再加上与a,b匹配的的数据  
 此时的取出的是:  
 1 a1 b1  
 2 a2 b2  
 3 a3 空字符  
 同样的也有right join  
 指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据  
 此时的取出的是:  
 1 a1 b1  
 2 a2 b2  
 4 空字符 b4 
------解决方案--------------------select a.xno,a.id,a.sl,b.xno,b.id,b.sl  
 from a full join b on a.xno=b.xno and a.id=b.id  
 order by isnull(a.xno,999999999),b.xno
------解决方案--------------------left join 可以完成你的功能,没有问题的,你好好看看。
------解决方案----------------------用 FULL JOIN   
 create table A 
 ( 
   xno int, 
   id varchar(10), 
   sl int 
 )   
 insert A select 1, 'a001 ',2 
 insert A select 1, 'a002 ',3 
 insert A select 3, 'a001 ',2 
 insert A select 4, 'a008 ',9   
 create table B 
 ( 
   xno int, 
   id varchar(10), 
   sl int 
 )   
 insert B select 1, 'a001 ',2 
 insert B select 1, 'a002 ',4 
 insert B select 3, 'a001 ',2 
 insert B select 5, 'a001 ',6   
 select A.*,B.* 
 from A FULL JOIN B 
 on A.xno=B.xno and A.id=B.id
------解决方案--------------------order by isnull(a.xno,b.xno)--排序还可以改成这样