SELECT a.tguildname ,SUM(a.ct) +  if (SUM(b.ct) IS NULL ,0,SUM(b.ct)) FROM ( 
SELECT  tg.tguildname,c.cid, (
cf.fbb + cf.fgjbb + cf.fjybb + cf.fqb + cf.fgjqb + cf.fjyqb + cf.fqib + cf.fgjqib + cf.fjyqib + cf.fgnb + cf.fxz + cf.fcc + cf.fsc + cf.fqzb + cf.fjfz + cf.fzgn + cf.fmf + cf.fhbq + cf.fbyqb + cf.fjgjw + cf.fzjy + cf.fshsq + cf.fdyqj + cf.fzhb + cf.fss + cf.fxc  + cf.zmzs + cf.jrzmzs + cf.hqs + cf.ltb + cf.zzltb
) as ct
FROM t_city_force AS cf,t_city AS c, t_user AS u ,t_guild_member AS gm ,t_guild AS tg 
WHERE cf.cid = c.cid
AND   c.uid = u.uid 
AND u.uid = gm.tuid
AND gm.tgid = tg.tgid
) as a 
LEFT JOIN (
SELECT  tg1.tguildname,tmp.cid,(
tmp.fbb+tmp.fgjbb+tmp.fjybb+tmp.fqb+tmp.fgjqb+tmp.fjyqb+tmp.fqib+tmp.fgjqib+tmp.fjyqib+tmp.fgnb+tmp.fxz+tmp.fcc+tmp.fsc+tmp.fqzb+tmp.fjfz+tmp.fzgn+tmp.fmf+tmp.fhbq+tmp.fbyqb+tmp.fjgjw+tmp.fzjy+tmp.fshsq+tmp.fdyqj+tmp.fzhb+tmp.fss+tmp.fxc+tmp.zmzs+tmp.jrzmzs+tmp.hqs+tmp.ltb+tmp.zzltb
) as ct
FROM t_inwar_force AS tmp ,t_city AS c, t_user AS u ,t_guild_member AS gm ,t_guild AS tg1
WHERE tmp.cid = c.cid
AND   c.uid = u.uid 
AND u.uid = gm.tuid
AND gm.tgid = tg1.tgid
)  as b 
ON a.cid = b.cid
GROUP BY a.tguildname 这个查询游戏内的一个SQL语句虽然可以出数据 但是感觉速度很不理想
原文:http://www.phpzc.com/read.php?tid-3457.html