【发布时间】:2017-03-26 08:09:12
【问题描述】:
我有一些通过外键关联的表,我需要从中获取数据,它们的结构类似于:
Table A Intermediate A Child A
| id | Data | idTableA | idChildA | id | Child A
| 1 | 'Data 1' | 1 | 1 | 1 | 'Child 1'
| 2 | 'Data 2' | 1 | 2 | 2 | 'Child 2'
| 3 | 'Data 3' | 1 | 3 | 3 | 'Child 3'
| 2 | 4 (...)
| 2 | 5
| 3 | 6
| 3 | 6
Intermediate B Child B
| idTableA | idChildB | id | Child B
| 1 | 4 | 4 | 'Child 1'
| 1 | 5 | 5 | 'Child 2'
| 1 | 6 | 6 | 'Child 3'
| 2 | 6 (...)
| 2 | 7
| 3 | 8
| 3 | 9
我要做的是从两个子表中获取与中间表中的Table A 键一致但不合并数据的所有记录。像这样的:
Result
|idTableA|ChildA |Child B |
|1 |'Child1'|null |
|1 |'Child2'|null |
|1 |'Child3'|null |
|1 |null |'Child4'|
|1 |null |'Child5'|
|1 |null |'Child6'|
|2 |'Child4'|null |
|2 |'Child5'|null |
|2 |null |'Child6'|
|2 |null |'Child7'|
(...)
我一直在申请中间表,然后从那里申请子表,但未能成功地从我应该获得空值的子表中检索混合数据。
有什么想法吗?
【问题讨论】:
-
您是否还想在任一子表中包含表 A 中具有 no 相关行的行?
标签: sql postgresql join union union-all