[英]mysql COUNT with UNION php
我在向我的查询中添加 COUNT 时遇到问题。
查询工作正常,但只要我添加COUNT(*) AS totalNum
我从每个表中得到 1 个结果
$query = "(SELECT 'table1' AS tablename, navid, thumb, title, longText, clicks AS allClicks, COUNT(*) AS totalNum
FROM table1
WHERE $column=1
AND enabled=1)
UNION DISTINCT
(SELECT 'table2' AS tablename, navid, thumb, title, longText, clicks AS allClicks, COUNT(*) AS totalNum
FROM table2
WHERE $column=1
AND enabled=1)
ORDER BY allClicks DESC";
while ($row = mysql_fetch_assoc($result)){
$navid = $row['navid'];
$thumb = $row['thumb'];
$tablename = $row['tablename'];
$title = strtoupper($row['title']);
etc...
}
问题:将count(*)添加到我的连接查询中的最佳方法是什么?
当使用聚合 function 时,例如COUNT
,您需要包含一个GROUP BY
子句:
(SELECT
'table1' AS tablename,
navid,
thumb,
title,
longText,
clicks AS allClicks,
COUNT(*) AS totalNum
FROM table1
WHERE
$column=1
AND enabled=1
GROUP BY navid, thumb, title, longText, clicks)
UNION DISTINCT
(SELECT
'table2' AS tablename,
navid,
thumb,
title,
longText,
clicks AS allClicks,
COUNT(*) AS totalNum
FROM table2
WHERE
$column=1
AND enabled=1
GROUP BY navid, thumb, title, longText, clicks)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.