> 데이터 베이스 > MySQL 튜토리얼 > EXCEPT 없이 MySQL 쿼리에서 행을 제외하는 방법은 무엇입니까?

EXCEPT 없이 MySQL 쿼리에서 행을 제외하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-01 12:05:10
원래의
857명이 탐색했습니다.

How to Exclude Rows in MySQL Queries Without EXCEPT?

SQL 쿼리의 EXCEPT 구문 오류

MySQL에서 쿼리에서 행을 제외하기 위해 EXCEPT 구문을 사용하면 구문 오류가 발생할 수 있습니다. 이는 MySQL이 기본적으로 EXCEPT 키워드를 지원하지 않기 때문입니다.

대체 솔루션

원하는 제외 기능을 얻으려면 NOT IN 절이나 IFNULL 조건을 사용한 LEFT JOIN:

NOT IN 절:

SELECT s.sno
FROM students s
WHERE s.sno NOT IN (
    SELECT t.sno
    FROM take t
    WHERE t.cno = 'CS112'
);
로그인 후 복사

IFNULL을 사용한 LEFT JOIN:

SELECT s.sno
FROM students s
LEFT JOIN take t ON s.sno = t.sno
WHERE IFNULL(t.cno, '') != 'CS112';
로그인 후 복사

다음을 고려하세요. 견본 데이터:

create temporary table students (sno int);

insert into students values (1);
insert into students values (2);
insert into students values (3);
insert into students values (4);
insert into students values (5);
insert into students values (6);
insert into students values (7);
insert into students values (8);
insert into students values (9);
insert into students values (10);

create temporary table take (sno int, cno varchar(50));

insert into take values (1, 'CS112');
insert into take values (2, 'CS112');
insert into take values (3, 'CS112');
insert into take values (4, 'CS112');
로그인 후 복사

NOT IN 절이나 IFNULL과 함께 LEFT JOIN을 사용하면 다음 결과가 반환됩니다.

+------+
| sno  |
+------+
|    5 |
|    6 |
|    7 |
|    8 |
|    9 |
|   10 |
+------+
로그인 후 복사

이러한 대체 방법은 CS112 과정을 수강한 학생을 효과적으로 제외합니다. , 해당 강좌를 수강하지 않은 학생 목록이 표시됩니다.

위 내용은 EXCEPT 없이 MySQL 쿼리에서 행을 제외하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿