有一个type表:                                   sale商品表:
    type_id    type_name                           sale_id   type_id
     1          青铜器                                    1          1
      2          瓷器                                      2          1 
      3         工艺品                                     3          5
      4           陶器                                      4          3
      5          手工品                                5          4
      6         其他                                      现在我需要显示所有的类型(type_name),以及该类型对应的商品的数量,sale表中没有的type_id(如2,6)需要显示它的个数为0.但是现在只能查询出商品表(sale)中存在的type_id(即type_id 为1345的可以查询出来),但是type_id 为2和6的确查询不出来现在的效果:
      type_id            type_name      count
       1                  青铜器           2
       3                  工艺品           1
       4                   陶器            1
       5                  手工品           1
请问我如何写sql语句可以实现如下效果?      type_id            type_name      count
       1                  青铜器           2
       2                   瓷器            0
       3                  工艺品           1
       4                   陶器            1
       5                  手工品           1
       6                   其他           0知道的帮帮我,谢谢~

解决方案 »

  1.   

    你看这样可以吗?
    select type_id,  max(typename),count(sale_id) as fcount  from (
    select a.type_id,a.typename,b.sale_id from  type a full join sale b on a.type_id=b.type_id)  aa group by type_id 
      

  2.   


    这样倒是可以,但是sale商品表里还有一个状态,加上这个条件就不行了
      

  3.   

    SELECT TYPE_ID, MAX(TYPE_NAME), COUNT(SALE_ID) AS FCOUNT
      FROM (SELECT A.TYPE_ID, A.TYPE_NAME, B.SALE_ID
              FROM TYPE AS  A
              FULL JOIN  SALE AS B ON A.TYPE_ID = B.TYPE_ID) AA
     GROUP BY TYPE_ID;
    这个应该可以
      

  4.   


    select complex.type_id, complex.type_name, sum_sale_ = sum(sum_sale)
      from (select type.*, sum_sale = case sale_id is null then 0 else 1
              from type
              left join sale on type.type_id = sale.type_id) complex
     group by complex.type_id, complex.type_name
    试试这个