SELECT p.id,p.playname,p.wanfa,t.id AS tzid,t.zhid,t.idchar,t.czlx,t.wanfa,t.qihao,t.money,t.zjmoney,t.jjz,t.beishu,t.ms,t.`addtime`,t.zt AS tzzt,qh.qihao,qh.kjhm,qh.czlx,u.uid,u.username,t.uid
FROM tz AS t
Inner Join playgroup AS p ON t.wanfa = p.wanfa
Inner Join qihaoinfo as qh ON t.qihao = qh.qihao AND t.czlx = qh.czlx
Inner Join username as u ON t.uid = u.uid and u.uid = '32' and
(t.addtime >='1322064000' and t.addtime <= '1322150399')
GROUP BY t.id
order by t.id desc
limit 0,20这段SQL还能否再进行优化?
还有一个就是t.zhid,有时候会有相同的zhid值.我想只显示一条.其它的放到点击后的页面里显示.
这个如何做呢.
我加了一个 DISTINCT(t.zhid),在上面,好象不管用..
还望高手指点一下.
有没用上索引。EXPLAIN 分析一下。
还有一个就是t.zhid,有时候会有相同的zhid值.我想只显示一条.其它的放到点击后的页面里显示.
这个如何做呢.
GROUP BY t.id,t.zhid
我加了一个 DISTINCT(t.zhid),在上面,好象不管用..
DISTINCT要记录都雷同才排除
如果相同id数据量大的话,感觉你先分组后再内联其它表。会好些。
1.有索引的.
2.还有一个就是t.zhid,有时候会有相同的zhid值.我想只显示一条.其它的放到点击后的页面里显示.
这个如何做呢.
看下面的例子.----|----------|---
ID | zhid |
----|----------|---
1 zh-111
2 zh-111
3 zh-111
4 zh-111
5 zh-111
6 null
7 null
8 null注:null表示为空.
这个前五条的记录的zhid不是一样的吗?我现在只想让他在列表里显示第一条.其它四条不显示.
是这个意思
2、将你的查询存为VIEW,假设ID唯一
select * from view1 a where not exists(select 1 from view1 where a.zhid=zhid and a.id>id)
explain select ...
show index from ...的结果以供分析。