表结构:
create   table test
(
id int(10) auto_increment not null  primary key ,
brandid int(10),
n varchar(50),
datetime datetime
)
数据:
insert into test values(1,'第一个品牌14日第一条','2013-03-14 14:14:14')
insert into test values(1,'第一个品牌14日第二条','2013-03-14 15:14:14')
insert into test values(1,'第一个品牌15日第一条','2013-03-15 11:14:14')
insert into test values(1,'第一个品牌15日第二条','2013-03-15 12:14:14')insert into test values(2,'第二个品牌14日第一条','2013-03-14 14:14:14')
insert into test values(2,'第二个品牌14日第二条','2013-03-14 15:14:14')
insert into test values(2,'第二个品牌15日第一条','2013-03-15 13:14:14')
insert into test values(2,'第二个品牌15日第二条','2013-03-15 16:14:14')想要查询出的效果:
1 第一个品牌14日第二条 2013-03-14 15:14:14.000 1 第一个品牌15日第二条 2013-03-15 12:14:14.000
2 第二个品牌14日第二条 2013-03-14 15:14:14.000 2 第二个品牌15日第二条 2013-03-15 16:14:14.000就是查询出来的数据 只显示同一品牌今天最后一条数据,和前一天最后一条数据,将他们在一行中显示。
 

解决方案 »

  1.   

    select * from (select * from test order by datetime desc) as t group by brandid,date(datetime)
      

  2.   


    select t1.id,t1.brandid,t1.n,t1.datetime,t2.id,t2.brandid,t2.n,t2.datetime from
    (select * from (select * from test order by datetime desc) as t group by brandid,date(datetime)  )t1 join
    (select * from (select * from test order by datetime desc) as t group by brandid,date(datetime)  )t2
    on t1.brandid=t2.brandid
    where t1.id<t2.id
    写出来了,但是尼玛写成视图的时候提示View's SELECT contains a subquery in the FROM clause的错误,请问你们一般是怎么解决的。
      

  3.   

    CREATE TABLE test ( id INT(10) AUTO_INCREMENT NOT NULL PRIMARY KEY , brandid INT(10), n VARCHAR(50), `datetime` DATETIME ); 
     INSERT INTO test VALUES(NULL,1,'第一个品牌14日第一条','2013-03-14 14:14:14'); 
     INSERT INTO test VALUES(NULL,1,'第一个品牌14日第二条','2013-03-14 15:14:14'); 
     INSERT INTO test VALUES(NULL,1,'第一个品牌15日第一条','2013-03-15 11:14:14'); 
     INSERT INTO test VALUES(NULL,1,'第一个品牌15日第二条','2013-03-15 12:14:14'); 
     INSERT INTO test VALUES(NULL,2,'第二个品牌14日第一条','2013-03-14 14:14:14'); 
     INSERT INTO test VALUES(NULL,2,'第二个品牌14日第二条','2013-03-14 15:14:14'); 
     INSERT INTO test VALUES(NULL,2,'第二个品牌15日第一条','2013-03-15 13:14:14'); 
     INSERT INTO test VALUES(NULL,2,'第二个品牌15日第二条','2013-03-15 16:14:14'); 
    SELECT * FROM test A WHERE NOT EXISTS(SELECT 1 FROM TEST 
    WHERE A.`brandid`=`brandid` AND DATE(A.`datetime`)=DATE(`datetime`)
    AND A.`datetime`<`datetime`
    )
     
      

  4.   

    and
    date(A.`datetime`) between CURDATE()-INTERVAL 1 DAY
    and curdate()
      

  5.   

    select * from (select * from test order by datetime desc) as t group by brandid,date(datetime) having date_sub(curldate(),interval 1 day)<datetime