MySQL에서 데이터를 조회할 때 때때로 여러 테이블에서의 결과를 하나의 쿼리 결과로 합치고자 하는 상황이 발생합니다. 이럴 때 SELECT 문 내부에 다른 SELECT 문을 사용하여 여러 테이블의 결과를 한 번에 조회하는 방법을 사용할 수 있습니다. 이 글에서는 이러한 방법을 사용하여 여러 테이블의 검색 결과를 합치는 방법에 대해 자세히 알아보겠습니다.
1. 기본 구조
하나의 테이블에서 데이터를 조회하면서 다른 테이블의 결과를 포함하려면 다음과 같이 쿼리를 작성할 수 있습니다.
SELECT *
, (SELECT result FROM table2 AS B WHERE A.idx = B.idx ) AS table2result
FROM table1 AS A
WHERE A.idx = 1
이 쿼리는 table1의 검색 결과와 함께, table2에서 같은 조건을 만족하는 result 컬럼의 값을 table2result 이름으로 함께 출력합니다.
2. 여러 테이블에서 결과 합치기
두 개 이상의 테이블에서 결과를 합치고 싶을 때는 동일한 방식으로 쿼리를 확장하면 됩니다.
SELECT *
, (SELECT result FROM table2 AS B WHERE A.idx = B.idx ) AS table2result
, (SELECT result FROM table3 AS C WHERE A.idx = C.idx ) AS table3result
FROM table1 AS A
WHERE A.idx = 1
위의 쿼리는 table1, table2, table3의 결과를 조건에 맞게 합쳐서 출력합니다.
(select ....)를 계속해서 추가하는 방식으로 검색하고자 하는 내용을 늘릴 수 있습니다.
결론
MySQL에서 여러 테이블의 검색 결과를 합치는 것은 SELECT 문 내부에 다른 SELECT 문을 사용하는 방식으로 간단하게 구현할 수 있습니다. 이 방법을 활용하면 여러 테이블 간의 관계를 쉽게 파악하며, 복잡한 데이터 조회 요구사항도 효과적으로 처리할 수 있습니다.
같이보면 좋은글
'Language > SQL' 카테고리의 다른 글
[MYSQL] 다중테이블 JOIN문 쓰기 (0) | 2021.01.12 |
---|---|
[MYSQL] 테이블을 limit 만큼 검색(select)하여 join으로 해당 테이블 합치기 (장바구니) (0) | 2021.01.05 |
[MYSQL] 검색한결과 업데이트 하기 update, select (0) | 2021.01.04 |
[MYSQL] 쿼리문에서 NULL 값 체크 및 값 변경 (0) | 2021.01.04 |
[MYSQL] 데이터베이스 검색하기 select 문, 검색된 rows 갯수 알기, 정렬은 order by ASC 혹은 DESC (0) | 2020.10.13 |