오류: 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