Tôi có một bảng trong tên của ips như sau:
CREATE TABLE `ips` (
`id` int(10) unsigned NOT NULL DEFAULT '0',
`begin_ip_num` int(11) unsigned DEFAULT NULL,
`end_ip_num` int(11) unsigned DEFAULT NULL,
`iso` varchar(3) DEFAULT NULL,
`country` varchar(150) DEFAULT NULL
) ENGINE=InnoDB
Giả sử tôi có một countryidtrường trên bảng này từ bảng quốc gia như sau:
CREATE TABLE `country` (
`countryid` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`ordering` smallint(5) unsigned NOT NULL DEFAULT '0',
`iso` char(2) NOT NULL,
PRIMARY KEY (`countryid`)
) ENGINE=InnoDB
Có khoảng 100.000 hồ sơ trong bảng ips. Có bất kỳ truy vấn nào cho kịch bản sau đây không:
Kiểm tra xem ips.isocó bằng không country.iso, nếu nó bằng nhau thì thêm country.coutryid vào bản ghi đó. Tôi không thể nghĩ ra cách nào để làm điều đó. Bạn có bất cứ ý tưởng làm thế nào để làm điều đó?