有两个表:
a表:   商品id   编号  名称
        1        001   A
        2        002   B
        3        003   C
注:(商品id主键)
b表:   编号      商品id  数量    类型
    99    1    10   ZP
    44    1    10   FP      
    99    2    10   ZP  
注:(编号,商品id主键)
我想查一下a表里面的所以商品的库存数量.除了类型为FP的.
select * from a left join b on a.商品id=b.商品id where b.编号 not like '4%'
我发现这样写,商品编号为003的就不显示了.我想结果是:
编号  数量 类型
001   10   ZP
002   10   ZP
003   0    null谢谢..

解决方案 »

  1.   

    select a.* , c.* from a
    left join
    (
      select * from b where 类型 <> 'FP'
    ) c
    on a.商品id = c.商品id
      

  2.   

    你的語句只要修改一點就OKwhere 改為 andselect * from a left join b on a.商品id=b.商品id and b.编号 not like '4%'
      

  3.   

    按照你的題意,准確的條件應該是這樣的select * from a left join b on a.商品id=b.商品id and b.类型 != 'ZP'
      

  4.   

    select a.编号,b.数量,类型 from a left join 
    (select 编号,sum(数量)as 数量,类型 from b where 类型<>'PF' group by 编号,类型)b on a.编号=b.编号
      

  5.   

    這都看錯了select * from a left join b on a.商品id=b.商品id and b.类型 != 'FP'
      

  6.   

    select a.编号,sum(b.数量)as数量,b.类型 from a left join b on a.商品id=b.商品id and b.类型 != 'FP'
      

  7.   

    新手,问下,on后面的条件用WHERE和AND有什么区别
      

  8.   

    fang1572() ( ) 信誉:100  2007-8-8 10:50:28  得分: 0  
     
     
       
    新手,问下,on后面的条件用WHERE和AND有什么区别  
     
    ----------------
    去看看這個帖子http://community.csdn.net/Expert/topic/5696/5696821.xml?temp=8.172244E-02