UNION
또는 다른 기술을 사용하여 하나의 결과로 표시하고자하는 두 개의 테이블이 있습니다.하나에서 다른 값을 상속하는 두 개의 테이블을 병합
ID
필드는 두 테이블을 모두 관련시킵니다.
두 번째 테이블에는 한 개의 필드가 누락되어 있으므로 첫 번째 테이블에서 누락 된 값을 가져야합니다.
아래의 샘플 코드는 작동하지만 큰 데이터 세트의 경우 매우 느립니다.
더 효율적인 솔루션이 있습니까?
T1: T2:
+----+-------+--------+ +----+------+
| id | name | town | | id | name |
+----+-------+--------+ +----+------+
| 1 | Alice | London | | 1 | Bob |
| 2 | Alan | Zurich | +----+------+
+----+-------+--------+
원하는 결과 :
+----+-------+--------+
| id | name | town |
+----+-------+--------+
| 1 | Alice | London |
| 2 | Alan | Zurich |
| 1 | Bob | London |
+----+-------+--------+
샘플 코드 : 그냥이 같은
with T1 as
(
select * from
(
values
(1,'Alice','London') ,
(2,'Alan','Zurich')
) as t (id,name,town)
), T2 as
(
select * from
(
values
(1,'Bob')
) as t (id,name)
), T2WithTown as
(
select t2.id,t2.name,t1.town from T2
inner join T1 on t2.id=t1.id
)
select id,name,town from T1
union
select id,name,town from T2WithTown
당신은 가장 쿼리를 adresses 대한 답변을 또한 upvote에 어떻게해야 선호합니다. 이것은 같은 문제를 검색하는 사용자에게 도움이 될 것입니다. – Nilish