検索結果を取り出す(SELECTの結果をINSERTする)
データを、SQLで、処理した結果を、
取り出す方法として、検索結果のテーブルを
作成してしまう、方法があります。
まず、結果を格納する、テーブルを作成し、
その、テーブルに結果を、格納する方法です。
このように、すると、結果を、単独で確認することができ、
また、外部への取り出すもしやすくなります。
例えば、CSE(Common SQL Environment)を使って、
CSVで出力したりすることができます。
SQL文は
INSERT INTO 結果格納テーブル(列名,列名,,,)
SELECT 列名,列名,,, FROM 検索側テーブル;
となります。
サンプルは
/* まず、テーブルを削除し */
DROP TABLE IF EXISTS customer;
/* 新規に作り直します。 */
CREATE TABLE customer
(id INT PRIMARY KEY,
customername varchar(40),
mail varchar(30),
phone varchar(20),
fax varchar(20)
);
/* サンプルデータを作ります。 */
INSERT INTO customer VALUES (1,'佐藤','satou@xxx.com','0901111','0900001');
INSERT INTO customer VALUES (2,'山田','yamada@xxx.com','0902222','0900002');
INSERT INTO customer VALUES (3,'加藤','katou@xxx.com','0903333','0900003');
INSERT INTO customer VALUES (4,'山本','yamamoto@xxx.com','0904444','0900004');
INSERT INTO customer VALUES (5,'山口','yamaguchi@xxx.com','0904445','0900005');
/* 結果格納用テーブル */
DROP TABLE IF EXISTS kekka;
/* 新規に作り直します。 */
kekka,CREATE TABLE kekka
(
ans1 varchar(40),
ans2 varchar(40),
ans3 varchar(40)
);
/* 吐き出す内容を確認 */
SELECT mail,phone,fax FROM customer;
/* 結果を吐き出してみます */
INSERT INTO kekka(ans1,ans2,ans3)
SELECT mail,phone,fax FROM customer;
/* 結果を確認 */
SELECT * FROM kekka ;
となります。
このようにすることで、
処理するデータを、データベースに落とし、
そこで、処理を行い、
結果を、テーブルに作成し、
結果を、取り出す。
という処理ができるように、なります。