tbl_Inv:
no    classNo  name
I001  C001     aaaa
I002  C001     bbbb
tbl_Inv_Class:
classNo  className 
C001     消耗品
查询要成这个样子:
no    classNo  className name
I001  C001     消耗品    aaaa
I002  C001     消耗品    bbbb
原来我是这样写的:
select DISTINCT a.no,a.classno,b.classname,a.name from tbl_Inv a,tbl_Inv_Class b 
where a.classNo=b.classNo有没有更正规的写法?不用DISTINCT的

解决方案 »

  1.   

    关键看表的关系及查询要求:一般是不必distinct的
    select a.no,a.classno,b.classname,a.name from tbl_Inv a,tbl_Inv_Class b 
    where a.classNo=b.classNo
    or:
    select a.no,a.classno,b.classname,a.name 
    from tbl_Inv a inner join tbl_Inv_Class b 
    on a.classNo=b.classNo
    如果tbl_Inv的classNo在tbl_Inv_Class可能没有
    select a.no,a.classno,b.classname,a.name 
    from tbl_Inv a left join tbl_Inv_Class b 
    on a.classNo=b.classNo
      

  2.   

    tbl_Inv表里的classNo 可能为空的时候怎么查呢?
      

  3.   

    楼主这样写本来就不用distinct啊,不太明白,,
      

  4.   

    select a.no,a.classNo,b.className,a.name
    from tbl_Inv as a , tbl_Inv_Class as b
    where a.classNo = b.classNo
      

  5.   

    wqrz(呼吸还在) ( ) 信誉:100    Blog  2006-9-17 18:14:45  得分: 0  
     
     
       
    tbl_Inv表里的classNo 可能为空的时候怎么查呢?  
    select a.no,a.classno,b.classname,a.name 
    from tbl_Inv a left join tbl_Inv_Class b 
    on a.classNo=b.classNo
      

  6.   

    select a.no,a.classNo,b.className,a.name
    from tbl_Inv as a inner join tbl_Inv_Class as b on a.classNo = b.classNo