次のテーブル設定があるとします。
--
-- Table structure for table `errors`
--
CREATE TABLE IF NOT EXISTS `errors` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL,
`num` int(11) NOT NULL,
`pid` bigint(20) unsigned NOT NULL,
`error` varchar(512) NOT NULL,
`datetime` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=190441 ;
-- --------------------------------------------------------
--
-- Table structure for table `stored_pictures`
--
CREATE TABLE IF NOT EXISTS `stored_pictures` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL,
`pid` bigint(20) unsigned NOT NULL,
`num` int(11) NOT NULL,
`updated_at` datetime DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`picture_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_url` (`url`),
KEY `idx_picture_id` (`picture_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2145543 ;
-- --------------------------------------------------------
stored_pictures
またはに存在しない欠落している pid 値を処理できるようにする必要があります。errors
たとえば、次のようになります。
stored_pictures pids:
1
5
6
7
8
9
15
19
20
21
22
23
24
25
errors pids:
2
4
14
17
次のリストを取得する必要があります。
3
10
11
12
13
16
18
そして、それらを php 配列に処理して処理します。また、速度を上げるために、両方のテーブルの pid にインデックスを設定する必要があると考えています。