MySQL 오류: "작업에 1개의 열이 포함되어야 합니다." 해결 방법
최근 SQL 쿼리에서 개발자는 "피연산자에 1개의 열이 있어야 합니다."라는 혼란스러운 오류가 발생했습니다. 오류로 인해 진행이 중단되었지만 면밀히 조사한 결과 해결책을 찾았습니다.
문제의 쿼리는 'topics'와 'posts'라는 두 테이블에서 데이터를 검색하려고 시도하며 'users' 테이블에서 두 개의 열을 선택하는 하위 쿼리에 대한 통계를 포함합니다. 그러나 이 하위 쿼리는 두 개의 열을 하나로 프로젝션하려고 시도하여 오류 메시지를 표시했습니다.
이해 오류:
쿼리가 단일 열인 것처럼 여러 열(예: 집계)에 대해 연산을 시도할 때 "피연산자에 1개의 열이 포함되어야 합니다." 오류가 발생합니다. 이 특별한 경우 하위 쿼리는 'users' 테이블에서 'username'과 'id'를 모두 선택합니다.
해결된 문제:
이 문제를 해결하기 위해 'users' 테이블에 직접 조인하여 하나의 열만 선택하도록 하위 쿼리를 재구성했습니다. 이 접근 방식을 사용하면 필요한 열을 더 유연하게 선택할 수 있습니다.
재작성된 쿼리:
<code class="language-sql">SELECT topics.id, topics.name, topics.post_count, topics.view_count, COUNT(posts.solved_post) AS solved_post, users.username AS posted_by, users.id AS posted_by_id FROM topics LEFT OUTER JOIN posts ON posts.topic_id = topics.id LEFT OUTER JOIN users ON users.id = posts.posted_by WHERE topics.cat_id = :cat GROUP BY topics.id</code>
직결의 장점:
'사용자' 테이블에 직접 조인하면 다음과 같은 여러 이점이 있습니다.
위 내용은 내 MySQL 쿼리가 '피연산자는 1개의 열을 포함해야 합니다'를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!