【发布时间】:2017-12-07 16:08:34
【问题描述】:
工作中!
SELECT s.*, COUNT(rs.id_segreto) as tot
FROM Segreti s INNER JOIN
Reazioni_Segreti rs
ON s.id = rs.id_segreto
WHERE rs.tipo_reazione = 'mi_piace'
GROUP BY s.id
ORDER BY tot DESC
LIMIT 10;
但它只打印了 1 行。
$rs_result = mysql_query($sql);
while ($row = mysql_fetch_array($rs_result, MYSQL_ASSOC)) {
echo $row['id']."<br>";
}
为什么会这样?我错了什么?
【问题讨论】:
-
在这里参考这个答案:stackoverflow.com/questions/14673338/…
-
你能给我们一些来自这两个表的样本数据吗?
Segreti中的列名是什么?由于您使用的是聚合函数 (COUNT()),因此您可能需要在非聚合列上使用GROUP BY。 -
如果您要有意义地使用聚合函数,您的查询中需要一个
GROUP BY子句。如果您使用的是 MySQL 5.7.5+,我很惊讶您没有收到错误消息告诉您。您可能遇到MySQL Group By Extensions 猜测如何对您的数据进行分组。