3개의 테이블을 한 테이블 ( 뷰) 로 만들고 싶은데요...
아래와 같은 방법으로 만들고 싶은데요..
현재 생각나는 방법으로는
1) 테이블 생성한다.
2) 3개의 테이블을 읽어서 필드2의 num 갯수가 가장 많은 것을 알아온다.
3) 1의 결과를 필드 1과 2를 insert 한다
4) 테이블 1,2,3 을 순차적으로 저장 테이블의 필드에 맞게 insert 한다...
이 정도 밖에 생각이 나지 않는데요 ㅠㅠㅠ
위의 방법을 쓰면.. 테이블로 저장을 해야하는데
목적은 뷰를 만드는 것이 목적입니다..
아래와 같은 그림으로 만드는것이 뷰로 만들기에 합당하지 않은 방법일까요???..
테이블로 구성해야하는 것이 능사일까요ㅜㅜ...
table1 | table2 | table3 | |||||||||||||
필드1 | 필드2 | 이름1 | 필드1 | 필드2 | 이름2 | 필드1 | 필드2 | 이름3 | |||||||
A | 1 | a | A | 1 | e | A | 1 | g | |||||||
A | 2 | b | A | 2 | f | ||||||||||
A | 3 | c | |||||||||||||
| |||||||||||||||
TABLE | |||||||||||||||
필드1 | 필드2 | 이름1 | 이름2 | 이름3 | |||||||||||
A | 1 | a | e | g | |||||||||||
A | 2 | b | f | ||||||||||||
A | 3 | c | |||||||||||||
인라인뷰를 이용해서
3개의 테이블을 union ㅂ퉁이신 다음
group by 하셔서 max 로 처리하시면 됩니다..
다른 방법은
select COALESCE(a.[필드1] ,b.[필드1] ,c.[필드1]) [필드1]
, COALESCE(a.[필드2] ,b.[필드2] ,c.[필드2]) [필드2]
, a.이름1
, b.이름2
, c.이름3
from t1 a full join t2 b on a.필드1 = b.필드1 and a.필드2 = b.필드2
full join t3 c on a.필드1 = c.필드1 and a.필드2 = c.필드2