首先分析你的问题:其中需要实现的是 hid、bzdate、username 都相同的记录只显示 bzdate 最新的一条(如果都相同何来最新?),只要三者其中一个不同就全部显示出来
看着那么花眼
$query="select d.name as ztname,h.*,b.*,m.realname from housecs h,dmcszt d,beizhu b,manager m where b.htype='".$htype."' and d.dm=h.zt and b.hid=h.id and b.username=m.id";if($username!='0000'){
$query=$query." and b.username='".$username."'";
}$query=$query." group by b.bzdate,b.hid,b.username order by b.bzdate,b.bztime desc limit $start,$pagesize";我觉得你的语句有问题
select b.id,b.username,b.bzdate from beizhu b group by b.id,b.username,b.bzdate
看着那么花眼
$query="select d.name as ztname,h.*,b.*,m.realname from housecs h,dmcszt d,beizhu b,manager m where b.htype='".$htype."' and d.dm=h.zt and b.hid=h.id and b.username=m.id";if($username!='0000'){
$query=$query." and b.username='".$username."'";
}$query=$query." group by b.bzdate,b.hid,b.username order by b.bzdate,b.bztime desc limit $start,$pagesize";我觉得你的语句有问题
select b.id,b.username,b.bzdate from beizhu b group by b.id,b.username,b.bzdate
假设有如下记录:id hid username bzdate bztime
1 1 1 2003-12-04 17:50:00
2 1 1 2003-12-04 17:51:00
3 1 2 2003-12-04 17:52:00
4 1 1 2003-12-05 17:50:00
则我需要显示出来的是 id 为 2、3、4 的记录,1 因为与 2 的 hid、username、bzdate 三个字段都相同,而 bztime 字段的时间比 2 靠前,所以只显示时间最新的 id 为 2 的记录
我看你还是把自己所生成的SQL语句打印出来仔细核对一下为上
$query=$query." and beizhu.username='".$username."'";
}