2012-03-19 1 views
2

데이터베이스에 두 개의 테이블이 있습니다. 표 1에는 NULL 일 수있는 주문 번호가 포함되어 있습니다. 표 2에는 모든 주문 데이터 (주문 번호 포함)가 포함되어 있습니다.연결된 열이 null 일 수있는 두 테이블에서 선택

이제 표 1의 모든 열과 표 2의 모든 주문 데이터를 선택하려고합니다. 따라서 테이블 1의 특정 항목에이 순서 번호가 포함되어 있지 않으면 다른 모든 열은 null이어야합니다. 그러나 주문 번호가 포함되어 있다면 두 번째 테이블에 연결하여이 데이터를 선택해야합니다. 내가 다른 일을 시도

column1tab1 column2tab1 order_number product amount 
xx   yy   123  p1  2 
xx   yy   456  p3  4 
xx   yy   NULL NULL NULL 
xx   yy   789  p2  1 
etc... 

,하지만 난 단지 널 (null)과 주문 번호 또는 모든 모든 행을 얻을 수 있지만, 나는 두 가지를 동시에 얻을 수 없습니다

출력 무언가 같이해야한다 . 누군가가 해결책을 알고 있으므로 하나의 쿼리에서이 작업을 수행 할 수 있습니까?

+1

조회 외부는 –

+0

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html –

답변

1

무엇을 시도하셨습니까? 간단한 왼쪽 조인이 트릭을 수행합니다. 예 :

select * 
from orders o left join orderdata od on o.orderId=od.orderid 
+1

감사 합류! ISNULL 문을 사용하여 많은 작업을 시도했지만 LEFT JOIN이 트릭을 수행했습니다. 이제는 다시 LEFT JOIN을 통해 제품의 가격을 얻을 수 있습니다 (다시 다른 테이블에 있음)! – simP

+0

도와 드리겠습니다. 문제를 해결하는 경우 질문을 대답으로 표시해야합니다. – Diego

0
select t1.* 
from table1 as t1 right join table2 as t2 on t1.order_number=t2.order_number