안녕하세요. 아밥 초보입니다.
첫번째 질문으로, 세개 이상 테이블을 조인하는 방법을 알려주시면 감사드리겠습니다.
두번째 질문으로, 테이블 조인은 숫자가 제한이 없는지도 궁금합니다.^^
그럼 답변 부탁드릴께요
감사합니다^^
댓글 5
-
휀돌이
2008.08.21 17:48
-
희망사항
2008.08.21 18:01
JOIN <테이블> ON <테이블 조인 조건> 을 계속 써주면 2개든 그 이상이든 조인 시킬 수 있습니다.
그리고 테이블 조인할 수 있는 숫자는 따로 정해져있지 않지만 통상 4개 이상의 테이블을 조인할 경우
처리 속도가 느려지기때문에 3개~4개까지가 적정 수준인걸로 알고있습니다.
그 이상은 VIEW나 for all entries in 구문을 이용하시는게 좋겠죠?
-
보나
2008.08.21 23:37
select a~필드1 a~필드2 b~필드1 c~필드1
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ATABLE as a
JOIN BTABLE as b
ON a~mandt = b~mandt
AND a~필드 = b~필드....
JOIN CTABLE as c
ON a~mandt = c~mandt
AND a~필드 = c~필드
WHERE a~필드 = 조건
AND b~필드 = 조건
.....
2개이상테이블의 (inner) join 형태입니다.
where 조건은 조인하는 모든테이블에 대해서 줄 수 있고요,
(left) outter join 의 경우는 기준테이블에 대해서만 where 조건을 줄 수 있습니다.
-
아밥초보입니다
2008.08.22 01:03
질문 너무 감사합니다^^
조인 관련 추가 질문이 있는데,
다시 글 올리겠습니다^^
-
컨설팅
2008.08.22 02:51
감사합니다
SELECT c~carrname p~connid f~fldate
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( scarr AS c
INNER JOIN spfli AS p ON p~carrid = c~carrid
AND p~cityfrom = p_cityfr
AND p~cityto = p_cityto )
INNER JOIN sflight AS f ON f~carrid = p~carrid
AND f~connid = p~connid ).
저는 첫번 째 질문만 답해드릴게요. 세개 이상의 테이블을 조인하는 방법은 위와 같습니다. (F1 help)
근본적으로 두개의 테이블을 조인하는 방법과 같고 일치하는 키값을 비교하기 위해서는 ON을 사용합니다.