작성
·
232
0
안녕하세요. 강사님
조인 실습 중에 질문이 생겨서 이렇게 문의드립니다.
다음 실습을 하던 도중
레프트 조인에서 b.ship_via = d.shipper_id 와 같이 서로 필드명이 다른데
어떻게 이 둘이 서로 같다 라고 알 수 있나요?
ERD를 보면 orders 테이블에는 ship_via, freight 모두 123표시가 있기는 합니다만.... 궁금합니다
null 값을 0으로 만들때
coalesce (. ) 함수 말고 ifnull 함수로는 사용할 수가 없는지 궁금합니다.
감사합니다. 강사님.!
답변 1
0
레프트 조인에서 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가 전혀 엉뚱한 값을 가지고 있으면 조인되지 않습니다.
ifnull()은 mysql 함수여서 postgresql에서는 호환되지 않을 겁니다.
감사합니다.
언제나 친절한 답변 감사드립니다.~