第一次在CSDN发帖。遇到一个问题。求帮助,谢谢
PHP+MYSQL的
数据库表tb_user(用户信息表).tb_login(用户登录记录表)
tb_user 结构:
 u_id(自增长)
 u_name
------------------
tb_login 结构:
 l_id(自增长)
 l_uid(用户表)
 l_login_date;
 l_logout_date;
--------------------
大致结构如上,现在要求一条SQL语句得出。所有用户登录次数,有记录和0登录的都要返回到一个数据集中,
本人菜鸟,麻烦大家帮忙看看,谢谢了~!
结果输出大致为
 uname login_count
 张1   14
 张2   4
 张3   3
 张4   0
.
.
.
.
 

解决方案 »

  1.   

    贴建表及插入记录的SQL,及要求结果出来看看
      

  2.   

    select u_name,count(l_id)
    from tb_user u left join tb_login l on u.u_id=l.l_uid
    group by u_name
      

  3.   

    select a.u_name,a.id,count(b.id) from tb_user a
    left join tb_login b
    on a.u_id=b.l_id
    group by a.u_name,a.id;
      

  4.   

    周一来测试,发现个问题、如果不加where 得到 如上结果,如果加了where结果会不一样,所有0的数据都读不出来了。比如加 where where  l_login_date > '2011-11-11 12:12:12'。我希望的是所有包括0的数据都能读出。
      

  5.   

    select a.u_name,a.id,count(b.id) from tb_user a
     left join (select * from tb_login where  l_login_date > '2011-11-11 12:12:12') b
     on a.u_id=b.l_id
     group by a.u_name,a.id;
      

  6.   

    select u_name,count(l_id)
    from tb_user u left join tb_login l on u.u_id=l.l_uid and  l_login_date > '2011-11-11 12:12:12'
    group by u_name
      

  7.   

    哇,2位版主大人回复,倍感荣幸!仔细分析了SQL,学习了~~~谢谢版主~