MySQL NOT IN 쿼리 실패: 피연산자는 1개의 열을 포함해야 합니다
MySQL NOT IN 쿼리에서 "피연산자는 1개의 열을 포함해야 합니다." 오류가 발생하는 경우 근본 원인을 이해하는 것이 중요합니다.
이 오류는 NOT IN 조건의 피연산자에 여러 열이 포함되어 있기 때문에 발생합니다.
<code class="language-sql">SELECT * from campaigns WHERE id not in ( SELECT e.id_campaign, d.name, d.frequency, d.country, d.referral, d.bid, d.status, COUNT(e.id) AS countcap </code>
NOT IN 연산자는 피연산자가 단일 열이어야 하지만 하위 쿼리는 여러 열이 포함된 행을 반환합니다.
해결책:
이 오류를 해결하는 한 가지 방법은 하위 쿼리에서 필요한 열을 추출하고 이를 외부 쿼리의 id 열과 비교하는 것입니다.
<code class="language-sql">select * from campaigns where id not in ( select id_campaign from ( select e.id_campaign as id_campaign, d.frequency, e.id from campaigns d left join served e on d.id = e.id_campaign where d.status = 'Active' group by e.id_campaign having count(e.id) < d.frequency ) as subquery )</code>
하위 쿼리 결과를 단일 열 id_campaign
으로 제한하여 NOT IN
연산자의 올바른 사용을 보장합니다. 또한 일부 MySQL 버전에 필요한 하위 쿼리에 별칭 as subquery
을 추가했습니다. 이렇게 하면 쿼리 명확성과 가독성이 향상됩니다.
위 내용은 MySQL NOT IN 오류: 왜 '피연산자는 1개의 열을 포함해야 합니까?'의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!