B 테이블 C 테이블
ID NAME ADR ID COST
요기에서 B테이블을 기본으로 보여주되 ID 에 맞는 COST 값만 붙히고 싶은 상황입니다
상사님 께서 이렇게 하셨습니다
SELECT *, (SELECT c.cost FROM C as c WHERE c.ID = b.ID ) as COST
FROM B as b;
보통 FROM 에서 부속질의 하지 않나요? 저렇게 하면 좋은게 있나요?
전 저런 방식은 근데 처음 봤습니다 만약 저한테 하라고 한다면
SELECT a.*, b.cost FROM B,C WHERE b.id = c.id 이렇게 할텐데 말이죠
B테이블에서 C의 cost 값만 추가 하고 싶은건 맞습니다
하나의 컬럼만 매칭해서 추가하는 건데 사실 JOIN 을 할필요가 있는지 궁금하기도 합니다
이런 상황에서 어느게 더 좋을까요?
보통 저렇게 사용하는걸 스칼라 서브 쿼리라 합니다.
http://wiki.gurubee.net/pages/viewpage.action?pageId=26744146