[SQL] MySQL의 서브 쿼리 반환 둘 이상의 행
SQLMySQL의 서브 쿼리 반환 둘 이상의 행
나는이 쿼리를 실행하고 있습니다 :
SELECT
voterfile_county.Name,
voterfile_precienct.PREC_ID,
voterfile_precienct.Name,
COUNT((SELECT voterfile_voter.ID
FROM voterfile_voter
JOIN voterfile_household
WHERE voterfile_voter.House_ID = voterfile_household.ID
AND voterfile_household.Precnum = voterfile_precienct.PREC_ID)) AS Voters
FROM voterfile_precienct JOIN voterfile_county
WHERE voterfile_precienct.County_ID = voterfile_County.ID;
나는 이런 식으로 뭔가를 반환하기 위해 노력하고 있습니다 :
County_Name Prec_ID Prec_Name Voters(Count of # of voters in that precienct)
그러나, 나는 오류를 얻고있다 :
나는 서브 쿼리에 COUNT 문을 배치 시도하지만 잘못된 구문 오류가 발생합니다.
해결법
-
==============================
1.당신은 간단한 GROUP BY와 함께, 부질없이 시도 할 수 있습니다 :
당신은 간단한 GROUP BY와 함께, 부질없이 시도 할 수 있습니다 :
SELECT voterfile_county.Name, voterfile_precienct.PREC_ID, voterfile_precienct.Name, count(voterfile_voter.ID) FROM voterfile_county JOIN voterfile_precienct ON voterfile_precienct.County_ID = voterfile_County.ID JOIN voterfile_household ON voterfile_household.Precnum = voterfile_precienct.PREC_ID JOIN voterfile_voter ON voterfile_voter.House_ID = voterfile_household.ID GROUP BY voterfile_county.Name, voterfile_precienct.PREC_ID, voterfile_precienct.Name
이 경우에 따라서 GROUP BY, 당신이 집계 조항이 있어야에 그룹화되지 않도록 모든 열 (f.e. SUM 또는 COUNT를.)를 사용하면 카운티 이름, precienct.id 및 precient.name에 그룹에 있습니다.
-
==============================
2.당신이 오류가 나타나면 : 오류 둘 이상의 행 이하 1,242 하위 쿼리 반환, 모든 하위 조회하기 전에 넣어보십시오. 예 :
당신이 오류가 나타나면 : 오류 둘 이상의 행 이하 1,242 하위 쿼리 반환, 모든 하위 조회하기 전에 넣어보십시오. 예 :
이 쿼리 반환 오류 :
SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);
이 좋은 쿼리입니다 :
SELECT * FROM t1 WHERE column1 = ANY (SELECT column1 FROM t2);
-
==============================
3.이 시도
이 시도
SELECT voterfile_county.Name, voterfile_precienct.PREC_ID, voterfile_precienct.Name, (SELECT COUNT(voterfile_voter.ID) FROM voterfile_voter JOIN voterfile_household WHERE voterfile_voter.House_ID = voterfile_household.ID AND voterfile_household.Precnum = voterfile_precienct.PREC_ID) as Voters FROM voterfile_precienct JOIN voterfile_county ON voterfile_precienct.County_ID = voterfile_County.ID
-
==============================
4.아래의 예를 참조하고 그에 따라 쿼리를 수정합니다.
아래의 예를 참조하고 그에 따라 쿼리를 수정합니다.
select COUNT(ResultTPLAlias.id) from (select id from Table_name where .... ) ResultTPLAlias;
from https://stackoverflow.com/questions/778239/mysql-subquery-returns-more-than-one-row by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오라클의 CONNECT BY ... START WITH에 해당하는 PostgreSQL의 구문은 무엇입니까? (0) | 2020.05.26 |
---|---|
[SQL] ERROR : 인덱스 식의 기능은 포스트 그레스 불변 표시해야 (0) | 2020.05.26 |
[SQL] SQL Server의 UNIX_TIMESTAMP (0) | 2020.05.25 |
[SQL] 어떻게 SQL에서 문을위한 SqlParameter에로 목록 <문자열>을 번역 하는가? [복제] (0) | 2020.05.25 |
[SQL] PLS-00428 : INTO 절은이 SELECT 문에 기대된다 (0) | 2020.05.25 |