2023年1月7日土曜日

SQLite3 CROSS JOIN (交差結合)について

概要

CROSS JOINの実行例。
公式のドキュメントによると SQLの最適化に影響があるとのこと。 使用を避けられるのであれば避けたほうがよさそう。

実行例

id_num 0001 0002 0003 table_num id_key AAA1 BBB2 CCC3 CROSS JOIN id_num id_key 0001 AAA1 0001 BBB2 0001 CCC3 0002 AAA1 0002 BBB2 0002 CCC3 0003 AAA1 0003 BBB2 0003 CCC3 table_key
                    
select
    A.table_num
    , B.table_key
from
    table_num A
    cross join
        table_key B
;
                    
                
環境
  • Windows 10 64bit
  • SQLite3 (3.39.2) Command-Line Shell
                    
sqlite> .mode box
sqlite> select * from table_num;
┌────────┐
│ id_num │
├────────┤
│ 0001   │
│ 0002   │
│ 0003   │
└────────┘
sqlite> select * from table_key;
┌────────┐
│ id_key │
├────────┤
│ AAA1   │
│ BBB2   │
│ CCC3   │
└────────┘
sqlite> select
   ...>     A.id_num
   ...>     , B.id_key
   ...> from
   ...>     table_num A
   ...>     cross join
   ...>         table_key B
   ...> ;
┌────────┬────────┐
│ id_num │ id_key │
├────────┼────────┤
│ 0001   │ AAA1   │
│ 0001   │ BBB2   │
│ 0001   │ CCC3   │
│ 0002   │ AAA1   │
│ 0002   │ BBB2   │
│ 0002   │ CCC3   │
│ 0003   │ AAA1   │
│ 0003   │ BBB2   │
│ 0003   │ CCC3   │
└────────┴────────┘
                    
                

参考URL