user表 
userid    username
  1         张三
  2         李四
  3         王麻子
info表
infoid    infotitle   userid
  1         学习好       1
  2         学习棒       1
  3         学习不好     2
  4         学习不棒     2
如何查找  发了信息的用户有几个人

解决方案 »

  1.   

    select
      a.userid,count(distinct b.userid) 
    from
      [user] a join info b
    on
      a.userid=b.userid
    group by
      a.userid
      

  2.   

    麻烦一下能用hql语句写一下吗 谢谢了
      

  3.   

    也不知道对不对 select count(*) from user inner join info on user.userid=info.userid where .....自己测试下
      

  4.   

    麻烦用hql语句写一下 谢谢了
      

  5.   

    没什么区别 自己看着改呗 ,也没用过hql 但是差不多
      

  6.   

    select count(distinct userid) from info,hql是什么,不懂,求教
      

  7.   

    这句MySql语句确实能查出来 但是hql语句不能读取on,哎 烦人啊
      

  8.   

    我已经做出来了 谢谢前面几位了
    StringBuffer hql = new StringBuffer("from User as a where a.userid in(select distinct b.users.id from Info as b)"); 
    这个users是外键 
      

  9.   

    我的那个也能查出来的 from User as a where a.userid in(select distinct b.users.id from Info as b 和select count(*) from user inner join info on user.userid=info.userid 一样滴 可以好好看下hql的定义
      

  10.   

    你这个在执行SQL语句能查得出来,但是hql语句不行 我试过 原因是on在hql语句中有限制