3张表 
    用户表
    发帖表
    回帖表一条sql写出每个用户的发帖和回帖数量 怎么写?谢谢各位了

解决方案 »

  1.   

    select top 1 * from xxx where tid = 4 order by id desc
      

  2.   

    是不是该到数据库那块提问?
    给个思路吧,这太语句就很大了,已用户表的name为条件,查询发帖表,返回几就是发了几个帖子,查询回帖表,返回几就回了几个帖子,前提是这三个表必须有主外键.
      

  3.   

    select  发帖数, 回帖数 from  用户表 left jion  发帖表 on 用户表.用户名= 发帖表.用户名  left jion   回帖表 on 回帖表.用户名=发帖表.用户名
      

  4.   

    给出表结构,才能给出具体的sql
      

  5.   

      用户表
      发帖表
      回帖表select a.name,b.发帖数量,C.回帖数量 from 用户表 a
    inner join    发帖表 b on a.id=b.id
    inner join    回帖表 c on b.id=c.id
      

  6.   

    SELECT *,(SELECT COUNT(*) FROM 发帖表 WHERE 用户=用户表.用户) AS 发贴数,
    (SELECT COUNT(*) FROM  发帖表 INNER JOIN  回帖表 ON 回帖表.帖ID=回贴表.帖ID
    WHERE 用户=用户表.用户)
    FROM 用户表
      

  7.   

    稍作修改一下
     SELECT *,(SELECT COUNT(1) FROM 发帖表 WHERE 用户=用户表.用户) AS 发贴数,
    (SELECT COUNT(1) FROM 回帖表 where 用户=用户表.用户) AS 回帖数
    FROM 用户表
      

  8.   

    给个表的结构,好让大家写的具体些。。
    请教下8楼仁兄,COUNT(*) 为什么要改成COUNT(1), 有什么区别吗??
      

  9.   

    假如用户表a a.name,a.NameID; 发贴表b b.NameID,b.Content 回帖表c c.NameID,c.Content
    SELECT a.Name,SELECT COUNT(b.Content) FROM a,b WHERE a.NameID=b.NameID AS SENDCOUNT ,SELECT COUNT(c.Content) FROM a,c WHERE a.NameID=c.NameID AS ReceiveCOUNT FROM a