想要实现的功能:店铺按该店铺照片数排序 
店铺照片分别记录在produce 和picture 这两个表中   
我写了个语句
select distinct a.*,(select count(sid) from picture where sid=a.sid)as cc,(select count(sid) from produce where sid=a.sid)as dd , ((select count(sid) from produce where sid=a.sid)+(select count(sid) from picture where sid=a.sid)) as ff from shop as a,picture as b,produce as d where a.sid=b.sid and a.sid=d.sid  order by ff desc   这样的话   produce 或者 picture 中没有照片的店铺就不能列出来了    有办法可以把店铺全部列出么?  不用这个语句  用其他方法实现也可以    谢谢大家了   只有这点分了   以后有分了一定追加

解决方案 »

  1.   

    你把表结构帖出来一下吧看你这SQL看得挺累的
      

  2.   

    联合produce 和picture 两个表,取得对应的count,然后按count值排序
      

  3.   

    列出表结构吧,你那SQL看起来好乱,有点头痛
      

  4.   

    表结构
    你的SQL太乱,发代码时选择插入源码---》
     你的源码类型
      

  5.   

    shop as a left join picture as b on a.sid=b.sid
              left join produce as d on a.sid=d.sid
      

  6.   

    补充
    表1 shop sid(主键)
    表2 produce  sid  
    表3 picture  sid
    通过  shop 的 sid  关联 另外两个表 
    要求 shop 的照片分别存在 表2 和表3中  通过sid 查出 shop的照片数   然后按这个数目排序  
    注意:没有照片的也能查询到
    纯SQL 和其他方式实现都可以