建议你分组进行,把第二个表进行分组,然后提取出信息数量超过10的用户ID,在到另外的那个表里面进行查信。如果你使用的是5.0以上的MySQL,可以使用语句嵌套,但是,如果你时候的5.0以下的,就得使用两条sql语句了,这个是没有办法的事情T_T

解决方案 »

  1.   

    统计总数可以这样做:
    SELECT SUM(u_num) AS total 
    FROM
    (
    SELECT COUNT(*) AS u_num FROM `ws_cn_sell` GROUP BY uid) AS t
      

  2.   

    突然想起来上面那个没有加10条以上的条件.
    试试下面这个吧,
    SELECT SUM(u_num) AS total
    FROM 
    (
    SELECT IF(count(*) > 10, count(*) , 0) as u_num 
    FROM `ws_cn_sell` 
    GROUP BY uid
    ) AS t
      

  3.   

    十分感谢楼上的,我试了,可以的,修改一个你的笔误
    SUM(u_num) => COUNT(u_num)
    顺便问一下,如果我还有一张表ws_cn_buy(求购信息表,关联字段也是uid),就是要统计发布出售信息10以上,求购信息5条以上的客户,要怎么统计总数???
      

  4.   

    SELECT SUM(u_num) AS total
    FROM 
    (
    SELECT IF(count(*) > 10, count(*) , 0) as u_num 
    FROM `ws_cn_sell` 
    GROUP BY uid
    ) AS t
    这句统计出来是不对的,不知道为什么
    我改了一下就对了:
    SELECT COUNT(u_num) AS total
    FROM 
    (
    SELECT count(*) as u_num 
    FROM `ws_cn_sell` 
    GROUP BY uid having u_num>=10
    ) AS t
      

  5.   

    1、你应该弄清楚你要干什么?
    “要统计出发布出售信息超过10条以上的客户”的信息来源于“ws_cn_sell:出售信息表”
    其他都是辅助信息
    所以就没有必要用 LEFT JOIN ,只需内连接即可
    2、后一句sql,从昨天见到后就我就没有弄明白你是在干什么
      

  6.   

    老大其实就是这样
    select uid,count(*) as aa from ws_cn_sell group by uid having aa>10 order by aa desc
    这是取出发布出售信息超过10条以上的客户我现在要统计出(发布出售信息超过10条以上的客户)的客户总数,以便用来分页:
    select uid,count(*) as aa from ws_cn_sell group by uid having aa>10 order by aa desc
    这句里面客户的总数,不知道怎么统计??
      

  7.   

    SELECT a.id,a.username,a.name,a.ip,b.* 
    FROM eqs_users a 
    LEFT JOIN ws_users_info b on a.id=b.uid
    WHERE a.uid 
    IN (
      SELECT uid FROM ws_cn_sell 
      GROUP BY uid having count(uid)>1) 
    ORDER BY a.register_date DESC LIMIT 0, 20
      

  8.   

    SELECT COUNT(*) FROM eqs_users a LEFT JOIN ws_users_info b ON a.id=b.uid WHERE 1=1 HAVING sell_num >=10这个真的有用?不明白……SELECT COUNT(*) FROM eqs_users as a,ws_users_info as b,ws_cn_sell as c WHERE a.id=b.uid asd b.sell_num >=10
    感觉这个就能实现你的查询要求了如果分页,就的使用limit了$page=20;//每页20条信息
    $p=$_GET["page"];//获取传递参数
    $sql="select * from eqs_users as a,ws_users_info as b,ws_cn_sell as c WHERE a.id=b.uid asd b.sell_num >=10 limit {$page*($p-1)},{$page*$p}";OK?行了不?唉……