두 가지는 테이블(table1, table2)같은 열 이름을(생성, 부모),원하는 출력이 될 것이 조합의 모든의 열 두 테이블이 있습니다. 함으로써의 행 table2 에 가입해야 table1 그래서는 그의 행 table2 은 일치하는 사람들의 table1 에서 차세대 열입니다. 부모 번호를 주문해야 합 오름차순으로 항목에 대한 table1 에서뿐만 아니라 table2. 의 행 수를 쿼리의 결과 동일해야의 그의 table1.
다음과 같은 테이블
table1:
| generation | parent |
|:----------:|:------:|
| 0 | 1 |
| 0 | 2 |
| 0 | 3 |
| 1 | 3 |
| 1 | 2 |
| 1 | 1 |
| 2 | 2 |
| 2 | 1 |
| 2 | 3 |
table2:
| generation | parent |
|:----------:|:------:|
| 1 | 3 |
| 1 | 1 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
다음과 같은 쿼리는 생각을 만들고 채우기 위한 두 개의 샘플 테이블과 같은 위의:
create table table1(generation integer, parent integer);
insert into table1 (generation, parent) values(0,1),(0,2),(0,3),(1,3),(1,2),(1,1),(2,2),(2,1),(2,3);
create table table2(generation integer, parent integer);
insert into table2 (generation, parent) values(1,3),(1,1),(1,3),(2,1),(2,2),(2,3);
상상 쿼리도해야하는 다음과 같은 원하는 결과:
| table1_generation | table1_parent | table2_generation | table2_parent |
|:-----------------:|:-------------:|:-----------------:|:-------------:|
| 0 | 1 | | |
| 0 | 2 | | |
| 0 | 3 | | |
| 1 | 1 | 1 | 1 |
| 1 | 2 | 1 | 3 |
| 1 | 3 | 1 | 3 |
| 2 | 1 | 2 | 1 |
| 2 | 2 | 2 | 2 |
| 2 | 3 | 2 | 3 |
현재 쿼리의 모양은 다음과 같습니다.
with
p as (
select
generation,
parent
from
table1
order by
generation,
parent
), o as(
select
generation,
parent
from
table2
order by
generation,
parent
)
select
p.generation as table1_generation,
p.parent as table1_parent,
o.generation as table2_generation,
o.parent as table2_parent
from
p
left join o on
o.generation=p.generation;
에 이르는 다음과 같은 결과를 얻을 수 있습니다
| table1_generation | table1_parent | table2_generation | table2_parent |
|:-----------------:|:-------------:|:-----------------:|:-------------:|
| 0 | 1 | | |
| 0 | 2 | | |
| 0 | 3 | | |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 3 |
| 1 | 1 | 1 | 3 |
| 1 | 2 | 1 | 1 |
| 1 | 2 | 1 | 3 |
| 1 | 2 | 1 | 3 |
| 1 | 3 | 1 | 1 |
| 1 | 3 | 1 | 3 |
| 1 | 3 | 1 | 3 |
| 2 | 1 | 2 | 1 |
| 2 | 1 | 2 | 2 |
| 2 | 1 | 2 | 3 |
| 2 | 2 | 2 | 1 |
| 2 | 2 | 2 | 2 |
| 2 | 2 | 2 | 3 |
| 2 | 3 | 2 | 1 |
| 2 | 3 | 2 | 2 |
| 2 | 3 | 2 | 3 |
이 링크를 주도하는 결론에는 어떤 가입하세 명령하지 않을 수 있습 무엇이 필요 여기...그러나 유니온은 행 추가...그래서 나를 위해 절대적으로 불명확하 어떻게 원하는 결과를 얻을 수 있습니다.O
어떤 도움을 높게 평가됩니다. 사전에 감사합니다!