SQLiteの交差結合
【開発環境】
OS:Win10(64ビット)
データベース:SQLite3
コマンドプロンプト入力
【交差結合とは】
交差結合とは2つのテーブルのデータの全ての組み合わせを取得するもので、CROSS JOIN句を使用する。
書式
SELECT テーブル名.カラム名, ... FROM テーブル名1
CROSS JOIN テーブル名2
ON テーブル名1.カラム名1 = テーブル名2.カラム名2;
または
SELECT (取得するカラム) FROM テーブル名1
CROSS JOIN テーブル名2 ON (結合条件);
例文
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> .tables
dept foods olduser staff user
earn kantou product test user1
テーブル削除
sqlite> drop table product;
テーブル作成
sqlite> create table product(id integer, name text);
データ入力
sqlite> insert into product values(1, 'Desk');
sqlite> insert into product values(2, 'Light');
sqlite> insert into product values(3, 'Chair');
テーブル作成
sqlite> create table color(id integer, name text);
データ入力
sqlite> insert into color values(1, 'Red');
sqlite> insert into color values(2, 'Blue');
sqlite> insert into color values(3, 'White');
sqlite>
sqlite> .header on
sqlite> .mode column
交差結合を表示
sqlite> select * from product cross join color;
id name id name
---------- ---------- ---------- ----------
1 Desk 1 Red
1 Desk 2 Blue
1 Desk 3 White
2 Light 1 Red
2 Light 2 Blue
2 Light 3 White
3 Chair 1 Red
3 Chair 2 Blue
3 Chair 3 White
sqlite>
・取得するデータのカラム指定方法
sqlite> select product.id, product.name, color.name from product cross join color;
id name name
---------- ---------- ----------
1 Desk Red
1 Desk Blue
1 Desk White
2 Light Red
2 Light Blue
2 Light White
3 Chair Red
3 Chair Blue
3 Chair White
sqlite>
※コメント投稿者のブログIDはブログ作成者のみに通知されます