2022年12月24日土曜日

SQLite3 LEFT JOIN (左外部結合)について

概要

LEFT JOIN(LEFT OUTER JOIN)の実行例。 なお、結合できなかった部分はnullになる。

実行例

user_id name 0001 ito 0002 takahashi sign_date user_id 2022-12-01 0001 2022-12-04 0002 2022-12-08 0001 2022-12-08 0003 user sign_history sign_date user_id name 2022-12-01 0001 ito 2022-12-04 0002 takahashi 2022-12-08 0001 ito 2022-12-08 0003 LEFT JOIN
                    
select
    A.sign_date
    , A.user_id
    , B.name
from
    sign_history A
    left join
        user B
        on
            A.user_id = B.user_id
;
                    
                
環境
  • Windows 10 64bit
  • SQLite3 (3.39.2) Command-Line Shell
                    
sqlite> .nullvalue [null]
sqlite> .mode box
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 * from user;
┌─────────┬───────────┐
│ user_id │   name    │
├─────────┼───────────┤
│ 0001    │ ito       │
│ 0002    │ takahashi │
└─────────┴───────────┘
sqlite> select
   ...>     A.sign_date
   ...>     , A.user_id
   ...>     , B.name
   ...> from
   ...>     sign_history A
   ...>     left join
   ...>         user B
   ...>         on
   ...>             A.user_id = B.user_id
   ...> ;
┌────────────┬─────────┬───────────┐
│ sign_date  │ user_id │   name    │
├────────────┼─────────┼───────────┤
│ 2022-12-01 │ 0001    │ ito       │
│ 2022-12-04 │ 0002    │ takahashi │
│ 2022-12-08 │ 0001    │ ito       │
│ 2022-12-08 │ 0003    │ [null]    │
└────────────┴─────────┴───────────┘
                    
                

参考URL