【发布时间】:2021-03-16 13:06:26
【问题描述】:
我有这种情况,如果有人有当前地址,则需要选择该地址,否则选择永久地址。
我不想将Address 表与Person 加入两次,因为这会影响性能。
人
| person_id | name | surname
+-----------+-------+----------
| 10 | ABC10 | XYZ10
| 11 | ABC11 | XYZ11
| 12 | ABC12 | XYZ12
| 13 | ABC13 | XYZ13
地址
| ID | person_id | type | address | city
+-------+-----------+-----------+-----------+----------
| 1 | 10 | Permanent | addr 10P | city 10P
| 2 | 10 | Current | addr 10C | city 10C
| 3 | 11 | Permanent | addr 11P | city 11P
| 4 | 12 | Permanent | addr 12P | city 12P
| 5 | 12 | Current | addr 12C | city 12C
| 6 | 13 | Permanent | addr 13P | city 13P
预期输出:
| person_id | name | surname | type | address | city
+-----------+-------+-----------+-----------+-----------+-----------
| 10 | ABC10 | XYZ10 | Current | addr 10C | city 10C
| 11 | ABC11 | XYZ11 | Permanent | addr 11P | city 11P
| 12 | ABC12 | XYZ12 | Current | addr 12C | city 12C
| 13 | ABC13 | XYZ13 | Permanent | addr 13P | city 13P
谢谢!
【问题讨论】:
标签: sql oracle inner-join query-optimization greatest-n-per-group