사실 .. 아침에 글 올렸다가 올린 글이 창피 해서 지웠습니다.
사실 .. 사용법을 알아 내기도 했지만요 .. ㅡㅡ;;
암튼 각설 하구요.
5 ~ 6개 의 테이블이 있습니다. 각각 컬럼 수 다르구요.
그리고 각각의 테이블에서 가져와야 할 컬럼 수도 다릅니다.
이럴경우 union 보다는 join 으로 가져와야 되는 것이 맞는거 같은데요.
문제는 테이블 2개 였을때는 괜찮았는데 .. 3번째 테이블 추가 시 기존 컬럼들에 빨간밑줄이 생기네요.
물론 무시하고 실행 했을때 오류 발생 되구요 ..
제가 적었지만 .. 좀 햇갈리네요.
일단 제가 원하는 건 여러개 테이블에서 필요한 컬럼만 한줄로 나열 하고 싶다는 겁니다.
간단한 .. 예제 부탁드립니다. ;;;
죄송합니다.
Comment 6
-
ssunsori
2013.12.26 15:10
-
군고구마
2013.12.26 15:25
조인시에 WHERE에 이게 전부인가요?
더 있지 않나요??
-
ssunsori
2013.12.26 15:31
아 ~ 자세히 보니 값이 다르군요 ..
즉 .. 조건 주었을때랑 안주었을때랑 시작 위치가 다르네요 ...
근데 .. 조건절에 더 줘야 할께 있나요?
제가 잘 몰라서요 ;;
-
군고구마
2013.12.26 16:08
아마 WHERE에 몇개 더 있을겁니다. 위에 where조건은 아마 join에서 on절에 해당하는 듯 보입니다.
그러므로 결국 타는 조건은 맨 앞 첫줄 조건밖에 없습니다.
그리고 나머지는 매칭되는 값 입니다.
-
군고구마
2013.12.26 16:10
from
TB_BUILD_LIST LIST ,
TB_BUILD_INFO INFO ,
TB_BUILD_DONG_REPORT REPORT ,
TB_BUILD_MASTER MASTER1 ,
TB_BUILD_HO HO
where LIST.MGM_BLDRGST_PK between '11110' and '99999' -- 조건
and LIST.MGM_BLDRGST_PK = INFO.MGM_BLDRGST_PK- TB_BUILD_LIST 과 TB_BUILD_INFO 테이블의 MGM_BLDRGST_PK 컬럼과 MGM_BLDRGST_PK 컬럼 매칭
and LIST.MGM_BLDRGST_PK = report.MGM_BLDRGST_PK- TB_BUILD_LIST 과 TB_BUILD_DONG_REPORT 테이블의 MGM_BLDRGST_PK 컬럼과 MGM_BLDRGST_PK 컬럼매칭
아마 where에
TB_BUILD_MASTER MASTER1 ,
TB_BUILD_HO HO값 들도 위처럼 where에 값이 있을 겁니다.
그게 on절에 해당 하거든요.
그래서 결론적으로 LIST.MGM_BLDRGST_PK between '11110' and '99999' 조건만 타는것이죠.
-
ssunsori
2013.12.27 11:00
답글이 늦었네요 . 죄송합니다. 정신이 없네요 ;; ㅎㅎ
자세한 설명 감사합니다.
않그래두 .. 제가 적은 조건이 너무 의미없어 보이긴 하더군요 .
그래두 먼가 느낀바가 있어서 조건 수정을 했습니다. ..
하다보니.. 조건 매칭 시키는 것 만으로도 머리가 띵 ~ 하네요 .
다시한번 감사드립니다.
이리 저리 해보다 보니 해결 되었네요 .
근데...
select top 10
LIST.MGM_BLDRGST_PK , LIST.addr , LIST.main_purps , LIST.BLD_NM ,
INFO.MGM_BLDRGST_PK, INFO.bjd_name , INFO.jibun , INFO.useapr_day , INFO.hhld_cnt, INFO.fmly_cnt, INFO.main_bld_cnt, INFO.grnd_flr_cnt,
report.MGM_BLDRGST_PK, REPORT.strct_nm, REPORT.ROOF_NM , REPORT.floor_nm,
MASTER1.useapr_day, MASTER1.bld_nm, master1.sub_bunji,
HO.flr_no, ho.priv_area, ho.comm_area, ho.sum_area, ho.park_area, ho.ho_nm
from
TB_BUILD_LIST LIST ,
TB_BUILD_INFO INFO ,
TB_BUILD_DONG_REPORT REPORT ,
TB_BUILD_MASTER MASTER1 ,
TB_BUILD_HO HO
where LIST.MGM_BLDRGST_PK between '11110' and '99999'
and LIST.MGM_BLDRGST_PK = INFO.MGM_BLDRGST_PK
and LIST.MGM_BLDRGST_PK = report.MGM_BLDRGST_PK
order by list.MGM_BLDRGST_PK , info.MGM_BLDRGST_PK , report.MGM_BLDRGST_PK
근데 .. 조건을 주나 않주나 결과 값은 같던데요 ..
무슨 차이가 있을까요? 조건을 않주었을때는 그냥 줄력 하지만 조건을 주었을때는
1110 ~ 9999 사이 값으로 해당 번호가 같은것만 가져온다 .. 이런 차이 뿐인가요?