一直不用数据库,现在突然要查询一个表,马上要,手头没资料啊,全忘光了。表名:tb_operation_log
要用到的字段:LOGIN_NAME 用户名
              OP_TYPE  操作类型,我要的是类型等于0
              OP_TIME  操作时间
我的要求是查询操作类型OP_TYPE等于0,按操作时间OP_TIME降序排列,同一天中LOGIN_NAME用户名不能重复(即相同账号在同一天中只出现一次),去除账号为zhoudan、linjh、wangxj。高手帮我写一下,急!

解决方案 »

  1.   

    select distinct LOGIN_NAME,OP_TIME from tb_operation_log where OP_TYPE=0 and LOGIN_NAME not in (zhoudan,linjh,wangxj) order by OP_TIME desc
      

  2.   

    drop table if exists operation_log;
    create table operation_log
    (
    login_name varchar(10),
    op_type tinyint,
    op_time datetime
    );insert into operation_log values("a1",0,"2007-04-03 13:01:01"),
    ("a1",0,"2007-04-03 14:01:01"),("a2",0,"2007-04-03 14:01:01"),
    ("a2",1,"2007-04-03 13:01:01"),("a2",0,"2007-04-04 14:01:01"),
    ("zhoudan",0,"2007-04-03 13:01:01"),("linjh",0,"2007-04-03 13:01:01")SELECT *
    FROM operation_log
    WHERE OP_TYPE=0 AND login_name<>"zhoudan" AND login_name<>"linjh" AND login_name<>"wangxj"
    GROUP BY login_name,DATE(op_time)
    ORDER BY OP_TIME DESC-- result
    "a2","0","2007-04-04 14:01:01"
    "a2","0","2007-04-03 14:01:01"
    "a1","0","2007-04-03 13:01:01"
      

  3.   

    SELECT DISTINCT login_name,op_time,op_type FROM tb_operation_log WHERE op_type=0 AND login_name NOT IN(zhoudan,linjh,wangxj) ORDER BY op_time DESC;