属性表:
  
attr_id(自增)  attr_name   attr_cate_id  1             型号             4
  2             重量             4
  3             时速             4商品表:
 goods_id         goods_cate_id   1                 4商品属性值对应表
  goods_attr_id (自增)         goods_id     attr_value  attr_id
    1                            1              (型号)M9   1
    2                            1              (重量)1.5kg 2现在要的结果是:
  goods_id    attr_name       attr_value  attr_id
    1           型号              M9        1
    1           重量              1.5kg     2
    1           时速             null       3我联查始终只有前面有attr_value的最后个时速没得....???查询结果:  属性全有,属性值没有就为null?  说得我都不晓得啥意思了....
  看看吧...

解决方案 »

  1.   

    你的语句是否是这样的?
    select goods_id attr_name attr_value attr_id
    from 
     商品表 as t1 
     left join 属性表 as t2 on t1.goods_cate_id = t2.attr_cate_id
     left join 属性表值对应表 as t3 on t2.attr_id = t3.goods_attr_id
    结果不应该没有时速吧,可能你把 属性表值对应表 放在 属性表 前面做连接了?
      

  2.   

    select c.goods_id,a.attr_name,c.attr_value,a1.attr_id from 属性表 a1 left join
    (select a.*,b.goods_id,b.goods_cate_id from 商品属性值对应表 a inner join 商品表 b on a.goods_id=b.goods_id) c
    on a1.attr_cate_id=c.goods_cate_id