主キーを共有する2つのテーブルがあります。設計が不十分で、a1のすべてのレコードにa4の対応するレコードがあることを確認する必要があることがわかりました。
クエリ:
SELECT a1.id1, a4.id4
FROM `a1`
LEFT JOIN `a4` ON a1.id1 = a4.id4
結果:
a1.id1.............a4.id4
00000001 ......NULL
00000002 ......NULL
00001001 ......00001001
00001002 ......00001002
a1に対応するキーを使用してa4に行を挿入する最良の方法は何ですか?上記の例では、レコード00000001と00000002をa4に挿入する必要があります。00001001と00001002は、a1とa4の両方にすでに存在するため、そのままにしておく必要があります。
データベーススキーマ:
CREATE TABLE `a1` (
`id1` int(8) unsigned zerofill NOT NULL auto_increment,
`Shrt_Desc` varchar(200) default NULL,
`ptype` int(5) NOT NULL,
`userid` tinyint(5) NOT NULL,
`submit_id` int(11) NOT NULL,
`submit_time` int(11) NOT NULL,
`update_id` int(11) NOT NULL,
`update_time` int(11) NOT NULL,
`pub` tinyint(1) default '1',
`plate` tinyint(1) NOT NULL,
`item` varchar(11) default NULL,
PRIMARY KEY (`id1`),
KEY `fb_groupbyorder_Shrt_Desc_INDEX` (`Shrt_Desc`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=124106 ;
CREATE TABLE `a4` (
`id4` int(8) unsigned zerofill NOT NULL,
`Water` decimal(10,2) default NULL,
PRIMARY KEY (`id4`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;