【发布时间】:2012-04-21 01:08:04
【问题描述】:
我想统计以下查询返回的总行数:
SELECT table1.*, COUNT(table2.fk) * (100/18) AS 'number'
FROM table1 INNER JOIN table2 ON table1.pk = table2.fk
WHERE table1.Street LIKE '$Street%'
AND table1.City LIKE '$City%'
AND table1.Zip LIKE '%$Zip'
AND table1.DOBY LIKE '%$DOBY'
AND table1.DOBM LIKE '%$DOBM'
AND table1.DOBD LIKE '%$DOBD'
AND table1.Gender LIKE '$gender%'
AND table2.year>= 2004
AND table2.type IN ('AA', 'AB', 'AC')
GROUP BY table2.fk
HAVING (COUNT(table2.fk) * (100/18)) >= '$activity'
ORDER BY DOBY, DOBM, DOBD ASC
查询将table1的主键作为table2的外键出现的次数或次数,并根据固定的数量计算百分比('number')。它工作得很好,但我无法获得为我的分页脚本找到的记录总数。 如果有人能提供一些建议或解决方案,我将不胜感激。
【问题讨论】:
-
会做一个子查询工作(即
(SELECT COUNT(id) FROM table WHERE conditional = $variable) AS count)吗?或者这个查询是你需要计数的吗?我没有看到LIMIT关键字。 -
这是我需要计数的查询。它要复杂得多,但为了简单起见,我对其进行了一些编辑。 limit 关键字出现在最后一行“LIMIT $start, $limit;”之后
标签: mysql select join count having