基于优先级从多表获取natural key列值的技术实现咨询
多表按优先级获取Natural Key值需求
优先级顺序
- Table A - 第1优先级(最高)
- Table B - 第2优先级
- Table C - 第3优先级
- Table D - 第4优先级
- Table E - 第5优先级(最低)
取值规则
- 若ID对应的Natural Key值同时存在于Table A、B、C、D、E中,优先选取Table A的值;
- 若值存在于Table B、C、D、E中,选取Table B的值;
- 若值存在于Table C、D、E中,选取Table C的值;
- 若值存在于Table D、E中,选取Table D的值;
- 若值仅存在于Table E中,选取Table E的值。
注意事项
- 记录按
ID分组; - 部分表可能不存在对应ID的Natural Key值;
- 一旦从高优先级表(如Table A)获取到值,低优先级表(如Table E)的对应值不会覆盖已选中的值;
- 各表均包含数百万条数据,查询需考虑性能。
示例
Table A
| ID | Value |
|---|---|
| '1' | 'Alpha' |
| '2' | 'Beta' |
| '3' | 'Delta' |
Table B
| ID | Value |
|---|---|
| '1' | 'Apple' |
| '2' | 'Banana' |
应返回结果
| ID | Value |
|---|---|
| '1' | 'Alpha' |
| '2' | 'Beta' |
| '3' | 'Delta' |
内容的提问来源于stack exchange,提问作者As0608
相关产品推荐
相关产品推荐

