일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Melbourne 여행
- 경주 여행
- 모리셔스 여행
- 서울야경
- 모리셔스 카젤라
- postgresql 비밀번호 변경
- r
- 트루오비쉬
- Sony A850
- bind9
- cloud foundry
- 서울 야경
- Trou aux Biches
- 두바이
- 프랑크푸르트 여행
- mauritius casela
- 모리셔스
- 경주
- 독일여행
- postgresql 설치
- 톰캣 서비스 등록
- postgresql 비밀번호 초기화
- 두바이여행
- 모리셔스여행
- mauritius
- 모리셔스 카셀라
- 느낌 사진
- 모리셔스리조트
- duabi
- openstack
- Today
- Total
I.K.Picture & IT Info.
PostgreSQL 조인 (Inner Join) 및 CSV 저장 본문
여러 테이블이 있고 테이블 간 외래키.. 또는 연계되어 있는 필드 값들이 있을 때
두 테이블을 조인해서 쿼리를 보내고 해당 내용을 바로 csv 파일로 출력할 수 있습니다.
아래 A 테이블 과 B테이블 2개가 있다고 생각할께요.
A 테이블
id | name | addr | floor_id |
1 | 시청역 | 블로구 | 1 |
2 | 을지로입구역 | 서봉구 | 2 |
B 테이블
id | floor_id | name | info |
1 | 1 | 지하 1층 | 지하 입구 근처 |
2 | 1 | 지하 2층 | 플랫폼 |
3 | 2 | 지하 1층 | 지하 입구 근처 |
이랬을 때 일반적으로 검색하는건 이렇죠
Query
>> SELECT * FROM A;
>> SELECT * FROM B;
근데 제가 A 테이블에 있는 floor_id 값과 B 테이블에 있는 floor_id 값을 조인하여 같이 출력하고 싶은 거죠
그랬을 때 주위해야되는 것 중에 하나가 기존 * 했던 부분을 직접 출력할 내용을 명확하게 정해줘야합니다.
SELECT A.id, A.name, A.addr, B.name, B.info FROM A
inner join B on A.floor_id = B.floor_id;
이렇게 쿼리를 작성하면 아래와 같이 나옵니다.
id | name | addr | name | info |
1 | 시청역 | 블로구 | 지하 1층 | 지하 입구 근처 |
1 | 시청역 | 블로구 | 지하 2층 | 플랫폼 |
2 | 을지로입구역 | 서봉구 | 지하 1층 | 지하 입구 근처 |
이러한 결과를 내가 바로 CSV로 처리하고 싶다.
라고 하면
Copy 명령어를 사용하면됩니다.
Copy(쿼리) TO '저장할 csv 파일 위치' with CSV delimiter ',';
참고로 저장할 csv 파일 위치는 PostgreSQL이 설치된 컴퓨터의 위치입니다.
고로 원격 형태로 PostgreSQL을 연결하고 있다면 해당 부분을 참고해야겠죠?
AA 서버에 PostgreSQL이 설치되어 있고 BB 클라이언트에서 접속하고 쿼리를 실행한다는 가정하에
저장할 csv 파일 위치는 AA 서버에 대한 위치를 작성해야된다는 것 입니다.
위 쿼리를 CSV를 작성한다는 가정하 예를 작성해보겠습니다.
Copy(SELECT A.id, A.name, A.addr, B.name, B.info FROM A inner join B on A.floor_id = B.floor_id)
TO 'D:\test.csv' with CSV delimiter ',';
'Development > Database' 카테고리의 다른 글
[PostGIS] 템플릿 형태로 PostGIS 적용하기 (0) | 2020.07.30 |
---|---|
[PostgreSQL] 비밀번호 초기화 및 변경 (0) | 2020.07.08 |
PostgreSQL 설치 시 ... An error occured executing the Microsoft VC++ runtime installer 경우 (1) | 2019.08.21 |
[PostgreSQL] Master /Slave 이중화 작업 (0) | 2018.09.22 |
[MongoDB] 사용자 인증 활성화 (0) | 2018.06.12 |