반응형
쿼리에 오류가 없고 행도 0개 반환되는 이유는 무엇입니까?
이 쿼리는 사용자 수 + 각 사용자가 만든 잠재력 수 + 변환된 모든 잠재력 수를 얻기 위해 작성되었습니다.다음과 같이 표시됩니다.
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
JOIN (SELECT FID_author, count(*) allPotentials FROM os_potential) p
ON p.FID_author = u.ID
JOIN (SELECT converted, FID_author, count(*) cPotentials FROM os_potential) pc
ON p.FID_author = u.ID AND pc.converted = 1
이 답변에서 설명한 바와 같이 1개의 쿼리를 조합할 수 있도록 상관없는 서브쿼리로 하려고 합니다.근데 0행이에요.
테이블은 다음과 같습니다.
사용자:
+----+------+-------+
| ID | Name | Email |
+----+------+-------+
가능성:
+----+------+-------+------------+-----------+
| ID | Name | Email | FID_author | converted |
+----+------+-------+------------+-----------+
FID_author는 외부 키, 사용자 ID입니다.
쿼리는 0 행을 반환하고 있으며 오류는 표시되지 않습니다.내가 뭘 잘못하고 있지?
편집
지금까지의 질문:
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
LEFT JOIN (SELECT FID_author, count(*) allPotentials
FROM os_potential GROUP BY FID_author) p
ON p.FID_author = u.ID
LEFT JOIN (SELECT converted, FID_author, count(*) cPotentials
FROM os_potential GROUP BY FID_author) pc
ON p.FID_author = u.ID
AND pc.converted = 1
GROUP BY u.ID
거의 예상대로 결과가 나오고 있는데 문제는cPotentials모든 행에 1이 포함되어 있습니다.이것은 false입니다.1개보다 훨씬 많다.어디가 문제입니까?
하위 쿼리에서 그룹이 누락되어 왼쪽 조인을 사용합니다.
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
LEFT JOIN (SELECT FID_author, count(*) allPotentials FROM os_potential
GROUP BY FID_author) p
ON p.FID_author = u.ID
LEFT JOIN (SELECT converted, FID_author, count(*) cPotentials FROM os_potential
GROUP BY converted,FID_author) pc
ON pc.FID_author = u.ID AND pc.converted = 1
언급URL : https://stackoverflow.com/questions/39408385/why-my-query-shows-no-errors-but-also-returns-zero-rows
반응형
'source' 카테고리의 다른 글
| 변수 참조만 참조로 반환해야 합니다(Codeigniter). (0) | 2022.09.21 |
|---|---|
| root@localhost를 가진 관리자로부터 "권한 거부" 오류가 발생했습니다. (0) | 2022.09.20 |
| 동시.Python 3에서의 미래 vs 멀티프로세싱 (0) | 2022.09.20 |
| JavaScript에서 숫자가 홀수인지 확인하는 방법 (0) | 2022.09.20 |
| 특정 속성을 가진 요소를 포함한다고 단언하려면 어떻게 해야 합니다. (0) | 2022.09.20 |