SQL 쿼리 문제 해결: 잘못된 행 개수 및 GROUP BY
해결 방법
SQL 쿼리에서 개별 행이 아닌 모든 행을 합산하여 행 개수가 부정확하게 생성됩니다. 해결책은 GROUP BY
테이블과 조인하는 하위 쿼리 내에서 messages_aura
절을 사용하는 것입니다. GROUP BY
은 지정된 열에서 동일한 값을 가진 행을 집계하여 올바른 개수를 제공합니다.
문제 및 해결책:
원본 LEFT JOIN
~ messages_aura
에는 GROUP BY
절이 없습니다.
<code class="language-sql">LEFT JOIN ( SELECT `ID` AS `AuraID`, `Status` AS `AuraStatus`, COUNT(*) AS `Aura` FROM messages_aura ) aura ON (var.Poster = aura.AuraID AND var.ID = aura.AuraStatus)</code>
Aura
의 모든 행을 합산했기 때문에 messages_aura
개수가 잘못되었습니다. GROUP BY
을 추가하면 다음 문제가 해결됩니다.
<code class="language-sql">LEFT JOIN ( SELECT `ID` AS `AuraID`, `Status` AS `AuraStatus`, COUNT(*) AS `Aura` FROM messages_aura GROUP BY AuraID, AuraStatus ) aura ON (var.Poster = aura.AuraID AND var.ID = aura.AuraStatus)</code>
이제 messages_aura
의 각 행은 AuraID
및 AuraStatus
으로 고유하게 식별되므로 정확한 Aura
개수가 계산됩니다. COUNT(*)
함수는 AuraID
및 AuraStatus
의 각 고유 조합을 올바르게 집계합니다.
위 내용은 내 SQL 쿼리가 개별 행 대신 모든 행을 계산하는 이유는 무엇이며, GROUP BY를 사용하여 이를 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!