"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > UNION 작업에서 \"오류: 사용된 SELECT 문의 열 수가 다릅니다\"를 해결하는 방법은 무엇입니까?

UNION 작업에서 \"오류: 사용된 SELECT 문의 열 수가 다릅니다\"를 해결하는 방법은 무엇입니까?

2024년 11월 10일에 게시됨
검색:342

How to Resolve \

오류: SELECT 문의 열 개수 불일치

UNION 연산과 같이 여러 SELECT 문이 포함된 쿼리를 실행할 때는 반드시 각 문에 정확히 동일한 수의 열이 포함되어 있는지 확인합니다. 그렇지 않으면 "오류: 사용된 SELECT 문에 다른 열 수가 있습니다." 오류가 발생합니다.

이 문제를 해결하려면 각 SELECT 절이 동일한 번호를 갖도록 쿼리를 다시 작성해야 합니다. 호환되는 데이터 유형을 가진 열의 수입니다. 예를 들어 제공된 쿼리는 다음과 같습니다.

SELECT * FROM friends
LEFT JOIN users AS u1 ON users.uid = friends.fid1
LEFT JOIN users AS u2 ON users.uid = friends.fid2
WHERE (friends.fid1 = 1) AND (friends.fid2 > 1)
UNION SELECT fid2 FROM friends
WHERE (friends.fid2  = 1) AND (friends.fid1 

첫 번째 SELECT에는 4개의 열("", u1., u2.*)이 포함되어 있지만 두 번째 SELECT에서는 단일 열("fid2)만 반환하므로 이 오류가 발생합니다. ").

의도한 기능을 유지하는 보다 간단한 재작성은 다음과 같습니다.

SELECT f.*, u.*
FROM FRIENDS AS f
JOIN USERS AS u ON u.uid = f.fid2
WHERE f.fid1 = 1 
  AND f.fid2 > 1
UNION 
SELECT f.*, u.*
FROM FRIENDS AS f
JOIN USERS AS u ON u.uid = f.fid1
WHERE f.fid2  = 1 
  AND f.fid1 

두 SELECT 문이 데이터 유형이 일치하는 동일한 수의 열을 반환하도록 하면 열 개수 오류가 발생하지 않고 쿼리를 실행할 수 있습니다. 또한 제공된 스키마에 따라 중복되는 것처럼 보이는 불필요한 외부 조인을 제거합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3