2012-06-05 23 views
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; 
+0

@RomanNewaza我不認爲該模式的問題。根本的問題是「如何遍歷查詢的結果並使用它們來執行一系列插入操作?」 – octern

回答