我有两个表,其中包含客户的年龄和高度。如何制作处理缺失记录的SQL查询?
Table: Ages
+-----------+------------+
|customerId | age |
+-----------+------------+
| 1 | 15 |
| 2 | 24 |
| 3 | 21 |
| 4 | 62 |
| 6 | 57 |
| 7 | 32 |
+-----------+------------+
Table: Heights
+-----------+------------+
|customerId | height |
+-----------+------------+
| 1 | 175 |
| 2 | 182 |
| 4 | 180 |
| 5 | 171 |
| 6 | 165 |
| 7 | 182 |
+-----------+------------+
我需要编写一个可读取所有年龄和高度的SELECT
查询。因此,像这样......
SELECT Ages.age, Heights.height
FROM Ages INNER JOIN Heights ON Ages.customerId=Heights.customerId;
然而(和这里的扭曲)由于马虎记录保存,有两个表丢失记录。 (例如,年龄中的顾客ID 5和高度上的顾客ID 3)。
有没有办法编写查询,以便它仍然可以工作,但每当数据丢失时返回零?
即
+-----------+------------+------------+
|customerId | age | height |
+-----------+------------+------------+
| 1 | 15 | 175 |
| 2 | 24 | 182 |
| 3 | 21 | 0 |
| 4 | 62 | 180 |
| 5 | 0 | 171 |
| 6 | 57 | 165 |
| 7 | 32 | 182 |
+-----------+------------+------------+
这将处理空高度,但什么是零年龄? –
请注意,COALESCE符合SQL标准。它也很整洁。 – Strawberry