4개 테이블 조인문제..? 0 1 11,250

by 헨씀히포 [SQL Query] [2013.02.10 23:20:27]



4개의 테이블을 조인을 해야 합니다
아래와같이 결과물이 나와야 됩니다

결과
=====================================================
번호 | 이름 |   연락처  |   식품명 | 자격증명
--------------------------------------------------
 1    홍길동  02-125-5471  초코파이   요리사
 2    안철수  02-536-5874  새우깡 정보처리


A 테이블
==========================
번호 | 이름  | 연락처   |
-------------------------
 1 홍길동 02-125-5471
 2 안철수 02-536-5874  

B 테이블
=================================
번호| 식품코드  | 자격증코드
 1   02    12
 2   06    08


식품테이블
===========================
코드  | 이름
-------------------------
 02   초코파이  
 06   세우깡

자격증테이블
============================
코드  |  이름
----------------------
  08   정보처리
  12   요리사


어떤식으로 쿼리를 만들어야 될까요?  

  

by Oracler [2013.02.11 13:32:37]
-- 일단 4개의 테이블을 조인하는 것은
-- WHERE 절에서 조인 조건 3개를 AND로 묶어주면 됩니다.

SELECT
    a.번호, a.이름, a.연락처
   , f.이름 AS 식품명
   , l.이름 AS 자격증명
FROM
    테이블A a, 테이블B b, 식품테이블 f, 자격증테이블 l
WHERE
    b.번호 = a.번호
    AND b.식품코드 = f.코드
    AND b.자격증코드 = l.코드
ORDER BY
    1
;

-- 하지만 테이블A와 테이블B를 합쳐 테이블A를 아래와 같이 변경하면
-- 테이블B가 필요없어지면서 3개의 테이블만 조인하면 됩니다.

-- A 테이블
-- ============================================
-- 번호 이름  연락처   식품코드 자격증코드
-- ----- ------ ----------- -------- ----------
-- 1	  홍길동 02-125-5471 02    12
-- 2	  안철수 02-536-5874 06    08

SELECT
    a.번호, a.이름, a.연락처
   , f.이름 AS 식품명
   , l.이름 AS 자격증명
FROM
    테이블A a, 식품테이블 f, 자격증테이블 l
WHERE
    a.식품코드 = f.코드
    AND a.자격증코드 = l.코드
ORDER BY
    1
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입