MySQLで関連テーブルの値を利用してUPDATEする
使える状況は限られますが、関連テーブルの値を利用してフィールドをアップデートする方法です。
※ MySQL バージョン 4.0.4以降でのみ有効な方法です。
「tbl」と[ref_tbl」の2つのテーブルが存在するとします。
-
CREATE TABLE `tbl` (
-
`tbl_id` int(11) NOT NULL AUTO_INCREMENT,
-
`subject` text,
-
`body` text,
-
`description` text,
-
PRIMARY KEY (`tbl_id`)
-
);
-
-
CREATE TABLE `ref_tbl` (
-
`ref_tbl_id` int(11) NOT NULL AUTO_INCREMENT,
-
`tbl_id` int(11) DEFAULT NULL,
-
`ref_value` text,
-
PRIMARY KEY (`ref_tbl_id`)
-
);
tblテーブルのdescriptionカラムに、ref_tblテーブルのref_valueカラムの値を追加する例です。
-
UPDATE tbl,ref_tbl SET tbl.description = concat(tbl.description,‘ ‘,ref_tbl.ref_value) WHERE tbl.tbl_id = ref_tbl.tbl_id;




