MySql에서 Intersect를 사용할 수 없다는 사실을 깨달았습니다.

오버플로우를 찾아봤는데, 다음과 같이 INTERSECT를 대신하여 작성하는 것이 깔끔하여 정리합니다.

<br/>

다음과 같은 테이블이 있다면,

CREATE TABLE SAMPLE(
    SEQ int AUTO_INCREMENT,
    NAME varchar(200),
    CONSTRAINT PRIMARY KEY (SEQ)
)

<br/>

NAME에 "데이터"를 포함하는 레코드와

NAME에 "베이스"를 포함하는 레코드를 INTERSECT 하는 SQL문은 다음과 같습니다.

SELECT *
FROM SAMPLE A
WHERE  A.NAME IN(
   SELECT NAME
   FROM SAMPLE
   WHERE NAME LIKE '%데이터%'
)
AND A.NAME IN(
   SELECT NAME
   FROM SAMPLE
   WHERE NAME LIKE '%베이스%'
)

<br/>

0
이전 댓글 보기
등록
TOP