questman 님이 쓰신 글 :
: 답변 감사합니다.
: view 를 만들기 위해서 join을 했습니다.
: 여러 table의 join이 같이 이루어 집니다.
:
: 푸른솔님의 말씀대로 하면 결과는 이렇게 나옵니다.
: 날짜 A-table.code_make B-table.client_name A-table.code_saler B-table.client_name
: -------------------------------------------------------------------------------------
: 0000 00001 일번회사(생산자) 0002 일번회사(생산자)<--판매자가 와야됨...
:
: 제가 원하는 바를 다시한번 더 설명 드리면.....
:
: A-Table B-Table(생산자,판매자 같이 등록됨)
: ----------------- ------------
: .. ..거래처코드(client_code)
: ..code_make(생산자) ..거래처명(client_name)
: .. ..
: ..code_sailer(판매자) ..
: .. -------------
: ..
: ------------------
:
: 얻고자 하는 결과
: 날짜 A-table.code_make B-table.client_name A-table.code_sailer B-table.client_name
: -------------------------------------------------------------------------------------
: 0000 00001 일번회사(생산자) 0002 이번회사(판매자)
:
: select A-table.날짜,A-table.code_make(생산자),B-table.client_name(생산자명),A-table.code_sailer(판매자),
: B-table.client_name(판매자) from A-table
: left outer join B-table on A-table.code_make(생산자) = B-table.client_name
: left outer join B-table on A-table.code_sailer(판매자) = B-table.client_name;
:
: 자꾸 한곳에만 신경 쓰다보니 저도 헷갈리 네요..ㅠㅠ
안녕하세요. 까막입니다.
우선 전제 조건이 필요한데요.
Code_Make 와 Code_Sailer 가 각각의 필드로 존재하는 거죠?
그렇다면 아래처럼 하시면 될겁니다.
SELECT A.Date, A.Code_Make, B.Client_Name, A.Code_Sailer, C.Client_Name
FROM A-Table A
LEFT JOIN B-Table B
ON (A.Code_Make = B.Client_Code)
LEFT JOIN B-Table C
ON (A.Code_Sailer = C.Client_Code)
같은 테이블(B-Table)을 두번 JOIN 을 걸면 이름 충돌이 나니까요.
별칭을 줘서 구분을 해줘야 겠죠.
B-Table 에 대해서 B 와 C 로 별칭을 다르게 줘서 내가 B, C 어디에 접근하려고 하는지를 명확히 구분해 줘야 합니다.
위대한 단군혼이 살아있는 나라.... 대한민국.
|