PostgreSQL에서 테이블 A의 특정 컬럼 값이 B 또는 C 테이블에 존재하는지 여부를 조회할 때, 이를 'O' 또는 'X'로 표시하는 방법을 소개합니다.
1. 문제 정의
테이블 A의 특정 컬럼 값이 B 또는 C 테이블에 존재하는지 확인하고, 결과에서만 이를 'O' 또는 'X'로 표시하려고 합니다.
2. SQL 쿼리 작성
다음은 EXISTS 서브쿼리와 CASE 문을 활용한 SQL 쿼리입니다.
SELECT
A.*,
CASE
WHEN EXISTS (SELECT 1 FROM B WHERE B.target_column = A.target_column) THEN 'O'
ELSE 'X'
END AS is_in_b,
CASE
WHEN EXISTS (SELECT 1 FROM C WHERE C.target_column = A.target_column) THEN 'O'
ELSE 'X'
END AS is_in_c
FROM A;
3. 쿼리 설명
EXISTS를 사용하여A.target_column값이B.target_column또는C.target_column에 존재하는지 확인합니다.- 존재하면 'O', 없으면 'X'를 반환합니다.
A.*를 사용하여 A 테이블의 모든 컬럼을 포함한 상태에서 추가 정보를 함께 조회합니다.
반응형
'개발 (Development) > PostgreSQL' 카테고리의 다른 글
| [PostgreSQL] 최댓값 구할 때 Max vs Order by (0) | 2025.03.22 |
|---|---|
| [PostgreSQL] 요소 별 최신 데이터 조회하기 (0) | 2025.03.22 |
| PostgreSQL에서 기존 데이터가 있는 상태에서 복원하기 (0) | 2025.02.23 |
| [PostgreSQL] SQL Error Handling (0) | 2025.02.23 |
| [PostgreSQL] JSON 컬럼에서 Key-Value 추출 및 MyBatis 연동 (0) | 2025.02.23 |