>데이터 베이스 >MySQL 튜토리얼 >MySQL의 INTERSECT 연산자 기능을 복제하는 방법은 무엇입니까?

MySQL의 INTERSECT 연산자 기능을 복제하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-25 09:07:32816검색

How to Replicate MySQL's INTERSECT Operator Functionality?

MySQL의 INTERSECT 연산자와 동일

SQL INTERSECT 연산자는 쿼리의 두 섹션 모두에서 발생하는 일치하는 값을 식별하고 반환하는 데 사용됩니다. . 그러나 이 연산자는 MySQL에서 기본적으로 지원되지 않습니다.

대체 접근 방식

MySQL에서 INTERSECT 연산자의 기능을 구현하려면 몇 가지 대체 방법을 사용할 수 있습니다.

  • INNER JOIN 사용 DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
INNER JOIN table_b ON table_a.column = table_b.column;
  • WHERE ... IN 및 DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
WHERE table_a.column IN (SELECT table_b.column FROM table_b);

다음 사항을 고려하세요. INTERSECT 연산자를 사용한 쿼리:

(select * from emovis_reporting where (id=3 and cut_name= '全プロセス' and cut_name='恐慌') ) 
intersect
( select * from emovis_reporting where (id=3) and ( cut_name='全プロセス' or cut_name='恐慌') )

이 쿼리는 ID가 3이고 cut_name이 '전체프로세스'와 '恐慌'인 'emovis_reporting' 테이블에서 레코드를 검색합니다.

MySQL 등가 항목

INNER JOIN 메서드를 사용하여 MySQL에서 이 쿼리를 구현하려면:

SELECT DISTINCT *
FROM emovis_reporting AS a
INNER JOIN emovis_reporting AS b ON a.id = b.id
WHERE a.id = 3
  AND a.cut_name = '全プロセス'
  AND b.cut_name = '恐慌';

WHERE ... IN 및 DISTINCT 메서드 사용:

SELECT DISTINCT *
FROM emovis_reporting
WHERE id = 3
  AND cut_name = '全プロセス'
  AND cut_name IN (SELECT cut_name FROM emovis_reporting WHERE cut_name = '恐慌');

위 내용은 MySQL의 INTERSECT 연산자 기능을 복제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.