2013-11-15 1 views
2

일부 정보를 얻으려는 다소 복잡한 데이터베이스가 있습니다.중첩 된 외부 조인

+----------+---------------+ 
| paint_id | painting_name | 
+----------+---------------+ 
|  1 | pueblo sunset | 
|  2 | some other | 
+----------+---------------+

그런 다음 다른 테이블

+---------+----------+ 
| made_id | paint_id | 
+---------+----------+ 
|  10 |  1 | 
+---------+----------+

그리고 다른 테이블

+---------+---------+ 
| lexi_id | made_id | 
+---------+---------+ 
|  20 |  10 | 
+---------+---------+

그리고 또 다른 테이블 내가 노력하고

+---------+---------+-------+ 
| term_id | lexi_id | term | 
+---------+---------+-------+ 
|  30 |  20 | Moran | 
+---------+---------+-------+

: 기본적으로 다음과 같은 세 가지 연결된 테이블이 있습니다 MS SQL 쿼리 작성하기 Y는 이런 식으로 돌아 가기 :

+---------------+-------+ 
| painting_name | term | 
+---------------+-------+ 
| pueblo sunset | Moran | 
| some other | NULL | 
+---------------+-------+

당신은 데이터가 연결되어 있음을 알 수 있지만, 거기에 도착하기 위해 여러 분기점을 통과해야한다. 나는 나가기 위해 왼쪽 외부 결합 물건이 필요하다는 것을 알고 있지만, 나는 그들을 중첩시키는 데 어려움을 겪고있다.

자세한 도움이 필요하시면 언제든지 알려 주시기 바랍니다.

답변

2

이것은 매우 기초적이므로 샘플 데이터를 기반으로 한 외부 조인이 필요하지 않습니다. 그냥 ID를 테이블을 조인 : SQL Fiddle

select 
    t1.painting_name, 
    t4.term 

    from t1 
    left outer join t2 
    on t1.paint_id = t2.paint_id 
    left outer join t3 
    on t2.made_id = t3.made_Id 
    left outer join t4 on t3.lexi_Id = t4.lexi_id 

편집 : 너무 늦은 밤에 분명히. 외부 조인으로 전환되었습니다.

+0

나는이 방법을 너무 많이 생각하고 있었다. 감사! – user2856332