내가 한 노력들

[ DB ] LIKE 조건에 서브쿼리와 조인을 이용하는 방법 본문

IT 공부/DB

[ DB ] LIKE 조건에 서브쿼리와 조인을 이용하는 방법

JONGI-N CHOI 2022. 12. 11. 13:00

한 테이블의 컬럼 값을 포함하고 있는 테이블의 레코드를 가져오고 싶은 경우가 있어서, 적용하는 법을 찾아봤습니다. 

 

예를 들어서, product 테이블과 order 테이블이 존재한다고 생각했을 때, 

order 테이블에는 title이라는 컬럼이 존재합니다. title 컬럼에는 product의 상품 번호 + string이 적혀져있는 구조라고 가정을 해봅니다.

 

그런 경우에, product의 상품번호를 이용해서 TITLE LIKE '%상품번호%' 형식으로 order 테이블의 레코드를 가져오는 구조입니다.

 

order

id title
1 모델 (AAA-123) 를 구매했습니다. 
2 모델 (BBB-222) 를 구매했습니다. 
3 모델 (DDD-222) 를 구매했습니다. 
4 모델 (CCC-394) 를 구매했습니다. 

product

id model
1 AAA-123
2 BBB-222
3 CCC-394

 

서브쿼리를 이용

SELECT * FROM product p
WHERE (
    SELECT `title` FROM order o
) LIKE '%' || p.model || '%';

"||"는 문자열을 합치기 위해서 사용한 연산자 이므로, DBMS에 맞춰서 지원하는 문법을 사용하시면 됩니다.

 

JOIN을 이용 

SELECT * FROM product p JOIN order o ON o.title LIKE '%' || p.model || '%';

JOIN을 사용하면 더욱 직관적으로 사용할 수 있습니다.