繁体   English   中英

mysql COUNT 与 UNION php

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM