左联接问题,请指教
A表         
 学号      教材编号   课程编号 
 0001            1                        a 
 0002            2                        b      
 B表   
 教材编号      课程编号   课程性质 
 1                                    a                     必修 
 1                                    b                     选修   
 想用左联结通过   教材编号   关联   
 slect   A表.学号,B表.课程性质   from   A表   left   join   B表      on   A表.教材编号=B.教材编号 
 问题:这样出来的记录会操过A表的总记录数,原因是B表同一教材编号有两种课程性质,我想与B关联时就只查找到B表匹配的第一条记录就可以了,这样行不行啊?   
------解决方案--------------------课程编号不关联?
------解决方案--------------------create table A(学号 varchar(10),教材编号 varchar(10),课程编号 varchar(10)) 
 create table B(教材编号 varchar(10),课程编号 varchar(10),课程性质 varchar(10))   
 insert A select  '0001 ', '1 ', 'a ' 
 union all select  '0002 ', '2 ', 'b '   
 insert B select  '1 ', 'a ', '必修 ' 
 union all select  '1 ', 'b ', '选修 '   
 select * into #t from  
 ( 
   select 教材编号,课程性质 from B a where 课程性质 = 
   ( 
     select top 1 课程性质 from B 
 	  where 教材编号=a.教材编号 
   ) 
 )t   
 select A.学号,#t.课程性质 from A left join #t on A.教材编号=#t.教材编号   
 drop table A,B,#t   
 学号         课程性质        
 ---------- ----------  
 0001       必修 
 0002       NULL   
 (所影响的行数为 2 行)
------解决方案--------------------LS的方法不可取,我觉得应该是要多一个关联关系,如wgzaaa() 所说的,要课程编号也同时关联,要不然取道的结果也不合常理。
------解决方案--------------------slect A表.学号,B表.课程性质 from A表 left join B表  on A表.教材编号=B.教材编号 
  and  A表.课程编号=B.课程编号
------解决方案--------------------如果没有课程编号.关联..取到的数据也不完善把...