テーブルを「左結合」して、値が一致する行だけでなく、次の一致する行まで、後続の一致しない行にも結合されるようにします。別の言い方をすれば、以前の非 null 値で null を埋めたいのです。
サンプルデータと望ましい結果:
表x
:
id
----
1
2
3
4
5
表y
:
id | val
----+-----
1 | a
4 | b
の結果select x.id, y.val from x left join y on x.id=y.id order by x.id;
:
id | val
----+-----
1 | a
2 |
3 |
4 | b
5 |
望ましい結果:
id | val
----+-----
1 | a
2 | a
3 | a
4 | b
5 | b