SQL에서 LIKE 조인 수행
조인을 사용하여 두 테이블 간의 값을 일치시킬 때 한 테이블의 열이 다른 테이블의 열 일부와 일치해야 합니다. 이는 조인 조건에서 LIKE 연산자를 사용하여 수행되는 경우가 많습니다.
테이블 A와 테이블 B라는 두 개의 테이블이 있고 테이블 A의 A열이 "like"인 조건으로 두 테이블을 조인한다고 가정해 보겠습니다. 이는 테이블 B의 컬럼 B입니다. 이는 일치 항목에 컬럼 B의 전체 값이나 그 앞이나 뒤의 문자가 포함될 수 있음을 의미합니다.
INSTR 사용:
한 가지 방법은 다음을 사용하는 것입니다. 조인 조건의 INSTR() 함수:
SELECT *
FROM TABLE A
JOIN TABLE B ON INSTR(B.columnB, A.columnA) > 0
LIKE 사용:
또 다른 옵션은 와일드카드와 함께 LIKE 연산자를 사용하는 것입니다:
SELECT *
FROM TABLE A
JOIN TABLE B ON B.columnB LIKE '%' A.columnA '%'
CONCAT과 함께 LIKE 사용:
와일드카드 기호를 열과 연결할 수도 있습니다 CONCAT() 함수를 사용하여 값:
SELECT *
FROM TABLE A
JOIN TABLE B ON B.columnB LIKE CONCAT('%', A.columnA ,'%')
대문자 변환:
대소문자를 구분하지 않는 일치를 보장하려면, B.columnB의 B.columnB에 테이블 B를 결합하세요. 비교하기 전에 열 값을 대문자로 변환하는 것이 좋습니다.
SELECT *
FROM (SELECT UPPER(A.columnA) 'ua' FROM TABLE A) A
JOIN (SELECT UPPER(B.columnB) 'ub' FROM TABLE B) B ON INSTR(B.ub, A.ua) > 0
효율성 고려 사항:
이러한 방법의 효율성은 특정 데이터베이스 및 테이블 구조에 따라 달라질 수 있습니다. 가장 최적의 접근 방식을 결정하려면 EXPLAIN 계획 출력을 확인하는 것이 좋습니다.
ANSI와 비ANSI JOIN 비교:
ANSI JOIN은 표준화된 구문을 따르지만 비ANSI JOIN은 표준화된 구문을 따릅니다. ANSI JOIN은 보다 전통적인 구문을 사용합니다. 이 경우 JOIN 절은 ANSI가 아닌 JOIN의 WHERE 절과 동일합니다.
SELECT *
FROM TABLE A,
TABLE B
WHERE INSTR(B.columnB, A.columnA) > 0
ANSI JOIN을 사용하면 WHERE 절의 필터 조건에서 조인 조건을 분리할 수 있는 이점이 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3