인프런 커뮤니티 질문&답변

Alejandro Lee님의 프로필 이미지
Alejandro Lee

작성한 질문수

데이터 분석 SQL Fundamentals

Outer join실습 02 관련

작성

·

232

0

안녕하세요. 강사님

조인 실습 중에 질문이 생겨서 이렇게 문의드립니다.

 

 

스크린샷 2022-11-25 오후 2.24.27.png다음 실습을 하던 도중

  1. 레프트 조인에서 b.ship_via = d.shipper_id 와 같이 서로 필드명이 다른데

어떻게 이 둘이 서로 같다 라고 알 수 있나요?

ERD를 보면 orders 테이블에는 ship_via, freight 모두 123표시가 있기는 합니다만.... 궁금합니다

 

 

  1. null 값을 0으로 만들때

  1. coalesce (. ) 함수 말고 ifnull 함수로는 사용할 수가 없는지 궁금합니다.

 

 

 

감사합니다. 강사님.!

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

  1. 레프트 조인에서 b.ship_via = d.shipper_id 와 같이 서로 필드명이 다른데

어떻게 이 둘이 서로 같다 라고 알 수 있나요?

=> b.ship_via와 d.shipper_id는 컬럼명이 다르지만 동일한 컬럼값을 의미합니다. 둘다 배송자 id를 의미합니다. 원래 shippers 테이블의 shipper_id가 pk 컬럼인데, 이걸 orders 테이블에서 이를 foreign key 컬럼으로 만들 때 다른 컬럼명인 ship_via로 사용한 것 뿐입니다.

그리고 조인시 컬럼명은 큰 의미가 없습니다. 컬럼값이 중요합니다.

그러니까 b.shipper_id = d.shipper_id라고 하더라도 b.shipper_id가 전혀 엉뚱한 값을 가지고 있으면 조인되지 않습니다.

  1. ifnull()은 mysql 함수여서 postgresql에서는 호환되지 않을 겁니다.

    감사합니다.

Alejandro Lee님의 프로필 이미지
Alejandro Lee
질문자

언제나 친절한 답변 감사드립니다.~

Alejandro Lee님의 프로필 이미지
Alejandro Lee

작성한 질문수

질문하기