[英]INNER JOIN SQL ORDER BY NOT WORKING
努力!
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;
但是它只打印我一行。
$rs_result = mysql_query($sql);
while ($row = mysql_fetch_array($rs_result, MYSQL_ASSOC)) {
echo $row['id']."<br>";
}
怎么會這樣 我錯了嗎?
這是MySQL允許的語法,但是SQL標准不允許-其他數據庫也不允許。 您在SELECT
有許多未分組的字段,但是COUNT()
將其轉換為聚合查詢。
如果沒有group by
,這樣的查詢將始終只返回一行。
我還建議使用表別名:
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;
請注意,即使在ANSI中,也可以在GROUP BY
使用s.id
(而不是列出所有列), s.id
是假設id
在表中定義為唯一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.