Q&A

  • 어린왕자의 초보 질문....INNER JOIN
안녕하세요..영원한 델초보 어린왕자입니다..

오늘 날씨 무지 좋네요..행복한 주말이 될꺼같은 예감이..^^~



저 질문은 초보질문인데요..



INNER JOIN에 관한건데...



...FROM Table1 INNER JOIN Table2 ON Table1.a=Table2.a...

이렇게 쓰잖아요..

근데 Table1과 Table2와 순서를 바꿔도 같은 결과가 나온가요??



글구 EQUAL JOIN은 조건식 그니깐 WHERE Table1.a=Table2.a라고 쓰는거죠?

근데..결과 차이가 많이 나나요?

암튼 차이점을 알고 싶어요..



아.마지막으로 각각 테이블에 프라이머키,포린키가 설정되어있을때..

EQUAL JOIN을 써서 SQL문 만들어두 괜찮을가요?

Table1.a(프라이머키)-------->Table2.a(포린키)

.b(프라이머키)-------->Table3.a(포린키)

이런식으로 되어있을때...

EQUAL JOIN으로 하면 안되겠죠?



워낙 기본이 없는 초보라...

답변바랍니다..

2  COMMENTS
  • Profile
    mafioso 2000.10.21 19:13
    여러가지를 물어오셨는데...



    우선 inner join 에서 table1과 table2의 순서는 바꿔도 실행결과에는 상관이

    없습니다. 물론 optimizer에는 영향을 미칠수도 있지만요...

    outer join 할때는 다른 결과가 나옵니다.

    그리고 inner join 에서 on t1.a = t2.a 하는거 하고

    equal join 에서 where t1.a = t2.a 하는 거는 똑같습니다.

    차이는 inner join ~ on 하는 거는 ANSI rule이기 땀시 표준화된 것이고

    equal join은 DBMS에 따라 표현방법이 다를수 있읍니다.(특히 outer join할때)



    도움이 되시기를...



    어린왕자 wrote:

    > 안녕하세요..영원한 델초보 어린왕자입니다..

    > 오늘 날씨 무지 좋네요..행복한 주말이 될꺼같은 예감이..^^~

    >

    > 저 질문은 초보질문인데요..

    >

    > INNER JOIN에 관한건데...

    >

    > ...FROM Table1 INNER JOIN Table2 ON Table1.a=Table2.a...

    > 이렇게 쓰잖아요..

    > 근데 Table1과 Table2와 순서를 바꿔도 같은 결과가 나온가요??

    >

    > 글구 EQUAL JOIN은 조건식 그니깐 WHERE Table1.a=Table2.a라고 쓰는거죠?

    > 근데..결과 차이가 많이 나나요?

    > 암튼 차이점을 알고 싶어요..

    >

    > 아.마지막으로 각각 테이블에 프라이머키,포린키가 설정되어있을때..

    > EQUAL JOIN을 써서 SQL문 만들어두 괜찮을가요?

    > Table1.a(프라이머키)-------->Table2.a(포린키)

    > .b(프라이머키)-------->Table3.a(포린키)

    > 이런식으로 되어있을때...

    > EQUAL JOIN으로 하면 안되겠죠?

    >

    > 워낙 기본이 없는 초보라...

    > 답변바랍니다..

  • Profile
    어린왕자 2000.10.23 19:46
    Table1.a(프라이머키)-------->Table2.a(포린키)

    .b(프라이머키)-------->Table3.b(포린키)

    Table2.c(프라이머키)-------->Table3.c(포린키)



    다음과 같은 테이블들이 있을때..



    Where (Table1.a=Table2.a) and (Table1.b=Table3.b) and (Table2.C=Table3.c)

    하고..



    From (Table1 INNER JOIN Table2 ON Table1.a=Table2.a) INNER JOIN Table3

    ON (Table3.b=Table1.b) AND (Table3.c=Table2.c)



    라고 쓰고 검색한 각각의 결과가..

    같다는 말인가요???



    프라이머키,포린키는 고려하지 않고 검색해두 되나요??









    mafioso wrote:

    > 여러가지를 물어오셨는데...

    >

    > 우선 inner join 에서 table1과 table2의 순서는 바꿔도 실행결과에는 상관이

    > 없습니다. 물론 optimizer에는 영향을 미칠수도 있지만요...

    > outer join 할때는 다른 결과가 나옵니다.

    > 그리고 inner join 에서 on t1.a = t2.a 하는거 하고

    > equal join 에서 where t1.a = t2.a 하는 거는 똑같습니다.

    > 차이는 inner join ~ on 하는 거는 ANSI rule이기 땀시 표준화된 것이고

    > equal join은 DBMS에 따라 표현방법이 다를수 있읍니다.(특히 outer join할때)

    >

    > 도움이 되시기를...

    >

    > 어린왕자 wrote:

    > > 안녕하세요..영원한 델초보 어린왕자입니다..

    > > 오늘 날씨 무지 좋네요..행복한 주말이 될꺼같은 예감이..^^~

    > >

    > > 저 질문은 초보질문인데요..

    > >

    > > INNER JOIN에 관한건데...

    > >

    > > ...FROM Table1 INNER JOIN Table2 ON Table1.a=Table2.a...

    > > 이렇게 쓰잖아요..

    > > 근데 Table1과 Table2와 순서를 바꿔도 같은 결과가 나온가요??

    > >

    > > 글구 EQUAL JOIN은 조건식 그니깐 WHERE Table1.a=Table2.a라고 쓰는거죠?

    > > 근데..결과 차이가 많이 나나요?

    > > 암튼 차이점을 알고 싶어요..

    > >

    > > 아.마지막으로 각각 테이블에 프라이머키,포린키가 설정되어있을때..

    > > EQUAL JOIN을 써서 SQL문 만들어두 괜찮을가요?

    > > Table1.a(프라이머키)-------->Table2.a(포린키)

    > > .b(프라이머키)-------->Table3.a(포린키)

    > > 이런식으로 되어있을때...

    > > EQUAL JOIN으로 하면 안되겠죠?

    > >

    > > 워낙 기본이 없는 초보라...

    > > 답변바랍니다..