아, 죄송합니다. 처음에 잘못 이해를 했네요.
그런데 어떤 형태의 출력을 원하시는 건지 잘 모르겠네요.
예를 들어 table1에 (a,b,c,x,y)가
(1,1,1,nassks,ssks),(2,1,1,nassks,ssks),(3,1,1,nassks,ssks),(4,1,1,nassks,ssks),(5,1,1,nassks,ssks)
있고, table2에 (w,x,y)가
(1,nassks,ssks), (2,nassks,ssks) 가 있다면 출력은
a b c w
=== === === ===
1 1 1 1
1 1 1 2
2 1 1 1
2 1 1 2
3 1 1 1
3 1 1 2
4 1 1 1
4 1 1 2
5 1 1 1
5 1 1 2
형태가 되길 바라시는 건지 잘 모르겠네요.
서브쿼리를 쓰면 될거 같은데.... 원하시는 출력 형태에 따라 쿼리가 조금 달라질 수 있을 듯 합니다.
>>nassks 님께서 쓰시길<<
:: select tb1.a, tb1.b,tb1.c, tb2.w from table1 tb1, table2 tb 2
:: where tb1.x='nassks' and tb1.y='ssks'
:: and tb2.x=tb1.x(+) and tb2.y=tb1.y(+)
::
:: 죄송하지만 위와 같이하게 되면 제가 생각하는 목적과는 조금 다르거든요...
:: 제가 조인이란걸 잘못 이해하고 잇는지..
:: 저는 table2칼럼에 w값이 없더라도 table1 a,b,c값을 모두 가져오고 싶은데
:: " and tb2.x=tb1.x(+) and tb2.y=tb1.y(+)" 처럼 and를 하게 되면 w칼럼에 값이
:: 없을때는 select가 하나도 안되네요..
:: +를 사용하면 or나 in은 허락할수 없다는 메세지가 나오구여...
::
:: 두 sql문을 하나로 합치고 싶어요..
:: 그러면서 table2 w칼럼에 값이 없더라도 table1의 값을 가져올수 있는 문이
:: 잇나해서요..
::
:: 정말 죄송해여....T.T
::
::
:: >>hanowa 님께서 쓰시길<<
::
:: :: select tb1.a, tb1.b,tb1.c, tb2.w from table1 tb1, table2 tb 2
:: :: where tb1.x='nassks' and tb1.y='ssks'
:: :: and tb2.x=tb1.x(+) and tb2.y=tb1.y(+)
:: ::
:: :: 로 할 수 있을 것 같습니다.
:: :: 다만 테이블 크기가 크고 데이터 양이 많다면 아우터 조인시 느려지는 속도는 감수하셔야 할거구요.
::
:: ::
:: :: 더 좋은 방법 있으면 또 알려주시길..
:: ::
:: :: >>nassks 님께서 쓰시길<<
:: ::
:: :: ::
:: :: ::
:: :: :: 다름이 아니라 조인에 관계된 문제입니다.
:: :: ::
:: :: :: select a,b,c from table1 where x='nassks' and y='ssks'
:: :: :: select w from table2 where x='nassks' and y='ssks'
:: :: ::
:: :: :: 이 두개의 문장을 하나로 합할려합니다...
:: :: :: table2에는 조건에 해당하는 값이 없을수도 있거든여..
:: :: ::
:: :: :: ==1> select tb1.a, tb1.b,tb1.c, tb2.w from table1 tb1, table2 tb 2
:: :: :: ==2> where tb1.x='nassks' and tb1.y='ssks'
:: :: :: ==3> and tb2.x='nassks' and tb2.y='ssks'
:: :: ::
:: :: :: 이렇게 조인을 하고 나니 table2에 조건에 해당하는 값이 없으면 table1의 값도
:: :: :: 안 가져 오더라구여...
:: :: :: table2에 조건에 해당하는 값이 없어도 table1의 값을 가져올수 있는 sql문을
:: :: :: 하나로 합칠려면?
:: :: ::
:: :: :: 고수님들 답변부탁해요..
:: :: :: 워낙 허접해서여..
|