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 문을 사용하는 방식으로 간단하게 구현할 수 있습니다. 이 방법을 활용하면 여러 테이블 간의 관계를 쉽게 파악하며, 복잡한 데이터 조회 요구사항도 효과적으로 처리할 수 있습니다.
같이보면 좋은글
[MYSQL] 검색결과 값 합치기 (select, CONCAT, GROUP_CONCAT)
MySQL에서 데이터 조작과 관련된 작업을 할 때 종종 여러 컬럼의 값들을 하나로 합치거나, 여러 행의 값을 하나의 행으로 합치는 작업을 필요로 합니다. 이럴 때 유용하게 쓰이는 함수들이 바로 CO
devit.koreacreatorfesta.com
[MYSQL] 검색한 결과 여러개 한번에 삭제 Delete 와 select에서 IN 사용하기
데이터베이스에서 특정 조건에 해당하는 여러 레코드를 한 번에 삭제하는 작업은 자주 필요로 합니다. 이러한 작업을 효율적으로 수행하는 방법 중 하나는 `DELETE`와 `SELECT`를 조합하여 `IN` 연산
devit.koreacreatorfesta.com
'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 |