>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 SQL Server의 INTERSECT 연산자 기능을 어떻게 얻을 수 있습니까?

MySQL에서 SQL Server의 INTERSECT 연산자 기능을 어떻게 얻을 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-11 18:42:15490검색

How Can I Achieve the Functionality of SQL Server's INTERSECT Operator in MySQL?

MySQL에서 Intersect의 대안 찾기

Microsoft SQL Server의 INTERSECT 연산자를 사용하면 두 데이터 세트 간에 공통적으로 존재하는 고유한 값을 검색할 수 있습니다. 안타깝게도 MySQL은 이에 상응하는 기능을 직접 제공하지 않습니다.

SQL Server 구문:

INTERSECT
SELECT value FROM dataset1
SELECT value FROM dataset2

MySQL 대안:

대신 MySQL은 유사한 목표를 달성하기 위한 대체 방법을 제공합니다. 결과:

방법 1: 고유한 INNER JOIN

이 접근 방식은 두 데이터 세트 간에 INNER JOIN을 사용하고 중복을 피하기 위해 DISTINCT 키워드를 적용합니다.

SELECT DISTINCT value
FROM dataset1
INNER JOIN dataset2
USING (value);

방법 2: 하위 쿼리 IN

또 다른 옵션은 IN과 함께 하위 쿼리를 사용하여 일치하는 값을 확인하는 것입니다.

SELECT value
FROM dataset1
WHERE value IN
(SELECT value FROM dataset2);

예:

다음을 고려하세요. 다음 MySQL 테이블:

CREATE TABLE table1 (id INT, value VARCHAR(255));
CREATE TABLE table2 (id INT, value VARCHAR(255));

INSERT INTO table1 VALUES (1, 'A'), (2, 'B'), (3, 'B');
INSERT INTO table2 VALUES (1, 'B');

-- Method 1
SELECT DISTINCT value
FROM table1
INNER JOIN table2
USING (value);

-- Method 2
SELECT value
FROM table1
WHERE value IN
(SELECT value FROM table2);

두 방법 모두 다음을 반환합니다. 결과:

+-------+
| value |
+-------+
| B     |
+-------+

고유하지 않은 데이터로 작업할 때 방법 1의 DISTINCT 키워드 또는 방법 2의 하위 쿼리에 DISTINCT를 사용하면 고유한 값만 반환됩니다.

위 내용은 MySQL에서 SQL Server의 INTERSECT 연산자 기능을 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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