Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【MySQL】select文の結果からテーブルを作成する

create table as文を使う。as句にselect文を書けばよい。以下は、二つのテーブルcharaとseiyuを内部結合した結果からchara_vcという新しいテーブルを作成した例。

mysql> show tables;
+--------------------+
| Tables_in_princess |
+--------------------+
| chara              |
| seiyu              |
+--------------------+
2 rows in set (0.00 sec)
mysql> select * from chara;
+------------------+-------------------+------+------------+
| name             | title             | no   | vc         |
+------------------+-------------------+------+------------+
| ライスシャワー   | ウマ娘            |   30 | miwami01   |
| スーパークリーク | ウマ娘            |   45 | kyuki01    |
| メイショウドトウ | ウマ娘            |   58 | mwatada01  |
| ライザ           | ライザのアトリエ2 |    1 | ynoguchi01 |
| フィー           | ライザのアトリエ2 |    2 | mwatada01  |
| 黒川あかね       | 推しの子          |    6 | miwami01   |
+------------------+-------------------+------+------------+
6 rows in set (0.00 sec)
mysql> select * from seiyu;
+-----------+------------+
| id        | name       |
+-----------+------------+
| miwami01  | 岩見舞菜香 |
| kyuki01   | 優木かな   |
| mwatada01 | 和多田美咲 |
| machico01 | Machico    |
+-----------+------------+
4 rows in set (0.00 sec)
mysql> select chara.name, seiyu.name as vc, chara.title
    -> from chara join seiyu on chara.vc = seiyu.id;
+------------------+------------+-------------------+
| name             | vc         | title             |
+------------------+------------+-------------------+
| ライスシャワー   | 岩見舞菜香 | ウマ娘            |
| スーパークリーク | 優木かな   | ウマ娘            |
| メイショウドトウ | 和多田美咲 | ウマ娘            |
| フィー           | 和多田美咲 | ライザのアトリエ2 |
| 黒川あかね       | 岩見舞菜香 | 推しの子          |
+------------------+------------+-------------------+
5 rows in set (0.00 sec)
mysql> create table chara_vc as
    -> select chara.name, seiyu.name as vc, chara.title
    -> from chara join seiyu on chara.vc = seiyu.id;
Query OK, 5 rows affected (0.04 sec)
Records: 5  Duplicates: 0  Warnings: 0
mysql> show tables;
+--------------------+
| Tables_in_princess |
+--------------------+
| chara              |
| chara_vc           |
| seiyu              |
+--------------------+
3 rows in set (0.00 sec)
mysql> select * from chara_vc;
+------------------+------------+-------------------+
| name             | vc         | title             |
+------------------+------------+-------------------+
| ライスシャワー   | 岩見舞菜香 | ウマ娘            |
| スーパークリーク | 優木かな   | ウマ娘            |
| メイショウドトウ | 和多田美咲 | ウマ娘            |
| フィー           | 和多田美咲 | ライザのアトリエ2 |
| 黒川あかね       | 岩見舞菜香 | 推しの子          |
+------------------+------------+-------------------+
5 rows in set (0.00 sec)

なお、create table as文はSQLの標準規格には含まれない機能であることに注意。