2016-09-07 6 views
0

죄송합니다.이 질문은 전에 힙이 요청되었지만 Google에서 이해할 수있는 방식으로 단어를 입력하는 방법을 알지 못했습니다.데이터베이스 디자인 모범 사례 여러 테이블을 연결

기본적으로 예를 들어, 3 개 개의 테이블이있는 경우 :

표 B1

표 B2

및 3 개 테이블로부터의 데이터가 어느 한 (2)의 방법으로 연결된다 도표 :

표 A & 표 B1

또는

표 가장 좋은 방법은 테이블에 왜 그들을 연결하는 일 것 & 표 B2

?

1 테이블 등 :

조인 된 테이블

|Table A |Table B1 |Table B2 | 
    |tableA_ID|tableB1_ID|null  | 
    |tableA_ID|null  |tableB2_ID| 

또는 각각

표 A에 가입 B1은

표 A에 입사 B2가

합류 2 개 별도의 테이블을 가지고

다른 방법이 있습니까?

+0

http://stackoverflow.com/questions/13749525/relational-database-design-multiple-user-types/13752304#13752304 –

+0

어제 월터에게 감사 드리는 바에 의하면 같은 결론을 얻었습니다. 이것은 그것에 대한 나의 생각을 분명히하는 데 도움이됩니다. 이걸 대답으로 어떻게 받아들이면 ...? – Suxorixorage

+0

원래의 상황에서 정답으로 이미 승인되었습니다. 나는 여기에 중복 답변을 게시하기로 결정했습니다. –

답변

0

난 당신이 사실에 left join, 두 싶은 생각 :

select a.tableA_ID, b1.tableB1_ID, b2.tableB2_ID 
from a left join 
    b1 
    on a.tableA_ID = b1.tableA_ID left join 
    b2 
    on a.tableA_ID = b2.tableA_ID ; 
1

가입 테이블은 테이블 중 필드와의 관계에 따라 달라집니다. 그것은 또한 당신이 찾고있는 출력에 따라 -이 기준으로, 사용자가 테이블

0

그것은 당신이 일을하려고하지만 예상 결과를 제공하는지 조금 불분명 가입해야합니다, union all 작동 될 수 있습니다

select a.tableA_ID, 
     b.tableB1_ID as TableB1, 
     null as TableB2 
from a join b on a.tableA_ID = b.tableA_ID 
union all 
select a.tableA_ID, 
     null, 
     b2.tableB2_ID 
from a join b2 on a.tableA_ID = b2.tableA_ID