概要
SQLite ver3.39.0 からRIGHT JOIN(RIGHT OUTER JOIN)が利用可能になった。 なお、結合できなかった部分はnullになる。
実行例
select
A.name
, B.sign_date
, B.user_id
from
user A
right join
sign_history B
on
A.user_id = B.user_id
order by
B.sign_date
, B.user_id
;
環境
- Windows 10 64bit
- SQLite3 (3.39.2) Command-Line Shell
sqlite> .mode box
sqlite> .nullvalue [null]
sqlite> select * from user;
┌─────────┬───────────┐
│ user_id │ name │
├─────────┼───────────┤
│ 0001 │ ito │
│ 0002 │ takahashi │
└─────────┴───────────┘
sqlite> select * from sign_history;
┌────────────┬─────────┐
│ sign_date │ user_id │
├────────────┼─────────┤
│ 2022-12-01 │ 0001 │
│ 2022-12-04 │ 0002 │
│ 2022-12-08 │ 0001 │
│ 2022-12-08 │ 0003 │
└────────────┴─────────┘
sqlite> select
...> A.name
...> , B.sign_date
...> , B.user_id
...> from
...> user A
...> right join
...> sign_history B
...> on
...> A.user_id = B.user_id
...> order by
...> B.sign_date
...> , B.user_id
...> ;
┌───────────┬────────────┬─────────┐
│ name │ sign_date │ user_id │
├───────────┼────────────┼─────────┤
│ ito │ 2022-12-01 │ 0001 │
│ takahashi │ 2022-12-04 │ 0002 │
│ ito │ 2022-12-08 │ 0001 │
│ [null] │ 2022-12-08 │ 0003 │
└───────────┴────────────┴─────────┘
参考URL
-
SQLite 公式サイト(英語)
https://www.sqlite.org/index.html -
SQLite RIGHT JOIN に関するドキュメント
https://www.sqlite.org/lang_select.html#rjoin