집 >데이터 베이스 >MySQL 튜토리얼 >UNION 문에서 \'ERROR 1222(21000): 사용된 SELECT 문에 다른 개수의 열이 있습니다\'를 수정하는 방법은 무엇입니까?
오류: UNIONed SELECT 문 간의 열 개수 불일치
제공된 쿼리에서 오류가 발생했습니다: "ERROR 1222(21000) : 사용된 SELECT 문의 열 개수가 다릅니다." 이 오류는 UNION 문의 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)
3개의 열을 반환합니다: friends.fid1 , friends.fid2 및 조인된 사용자 테이블의 열(u1 및 u2). 그러나 두 번째 SELECT 문:
SELECT fid2 FROM friends WHERE (friends.fid2 = 1) AND (friends.fid1 < 1)
단일 열만 반환합니다: friends.fid2.
열 일치를 위한 UNION 요구 사항
UNION 작업이 성공하려면 결합되는 모든 SELECT 문이 다음 요구 사항을 준수해야 합니다.
해결 방법
이 오류를 해결하려면 UNION 작업의 모든 SELECT 문이 데이터 유형이 일치하는 동일한 수의 열을 반환하는지 확인해야 합니다. 예를 들어 쿼리를 다음과 같이 다시 작성할 수 있습니다.
SELECT friends.*, u.* FROM friends JOIN users AS u ON u.uid = friends.fid2 WHERE friends.fid1 = 1 AND friends.fid2 > 1 UNION SELECT friends.*, u.* FROM friends JOIN users AS u ON u.uid = friends.fid1 WHERE friends.fid2 = 1 AND friends.fid1 < 1 ORDER BY RAND() LIMIT 6;
이 수정된 쿼리에서는 두 SELECT 문 모두 데이터 유형이 일치하는 동일한 수의 열(5개)을 반환하여 오류를 해결합니다.
위 내용은 UNION 문에서 \'ERROR 1222(21000): 사용된 SELECT 문에 다른 개수의 열이 있습니다\'를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!