「情報の追加・修正の依頼をする」に答えてくださったおかげで、
ご質問の詳細がわかりましたので、それに合わせて回答も書き換えさせていただきます。
例
以下のようなデータを例に説明します。
入力
file1.csv
ID,氏名,年齢
1,山田太郎,16
2,里中智,16
file2.csv
ID,商品名,価格
1,バット,12000
2,ボール,600![イメージ説明](6a827e5dbc480e9fc9510d95426b1874.png)
求める結果
入力ファイルを元に、mySQL 上に以下のようなテーブルを作ること。
phpmyadmin による方法
以下、phpmyadmin による実現方法です。
phpmyadmin 自体の操作はある程度ご存じであるという前提で以下書きます。
「 3.取り込んだテーブルから新規テーブルを作る」までの操作は、
すでにやっていらっしゃるようなので、
どういう操作をしたのかがわかる程度の最低限のスナップショットを挙げておきます。
1.対象データベースの作成
ここでは、「database1」という名前で作成します。
作成後です。
2.ファイルの取り込み
2-2.file1.csv の取り込み
file1.csv を取り込みます。
取り込み後です。`TABLE 1`
という名前でテーブルが作られています。
(TABLE
と 1
の間にスペースが入っているので注意が必要です。)
2-2.file2.csv の取り込み
同様に file2.csv を取り込みます。
取り込み後です。`TABLE 2`
という名前でテーブルが作られています。
3.取り込んだテーブルから新規テーブルを作る
以上の操作でできた二つのテーブルについて、
この作成していただいたテーブルからID1、ID2の行を付け足さないでIDの行だけで1行のレコードを作りたいです。 1、山田太郎、16、バット、12000\が1行になるようにできないでしょうか?
という形のテーブルを作るためには、例えば、以下のような SQL を実行します。
SQL
1create table `TABLE 3` (
2SELECT `TABLE 1`.ID,`TABLE 1`.氏名,`TABLE 1`.年齢,`TABLE 2`.商品名,`TABLE 2`.価格 FROM `TABLE 1` LEFT JOIN `TABLE 2` ON `TABLE 1`.ID=`TABLE 2`.ID
3)
以下のように実行すると・・・
以下のように `TABLE 3`
が作られます。
`TABLE 3`
の内容は以下のようになっています。
SQL説明
このSQL は大きく二つの操作を組わせて作られています、一つは、
SQL
1SELECT `TABLE 1`.ID,`TABLE 1`.氏名,`TABLE 1`.年齢,`TABLE 2`.商品名,`TABLE 2`.価格 FROM `TABLE 1` LEFT JOIN `TABLE 2` ON `TABLE 1`.ID=`TABLE 2`.ID
の部分で、TABLE 1
の一行について ID
カラムが同じ値の TABLE 2
の行を引き当て、
TABLE 1
から、ID
, 氏名
, 年齢
を
TABLE 2
から、ID
, 商品名
, 価格
を表示させています。
それを囲む形で記述してある
SQL
1create table `TABLE 3` (
2~前述の部分~
3)
の部分は、前述の部分の結果を新しいテーブルとして登録しています。