我有两个表:一个有点,另一个有多边形.
CREATE TABLE `points` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`point` point NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
CREATE TABLE `ranges` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`poly` polygon NOT NULL,
PRIMARY KEY (`id`),
SPATIAL KEY `poly` (`poly`)
) ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)
我希望将范围加入到多边形内的点上.查询看起来很简单:
SELECT *
FROM points
LEFT JOIN ranges
ON MBRCONTAINS(poly, point)
WHERE points.id = 2;
Run Code Online (Sandbox Code Playgroud)
此查询工作正常并使用索引,解释的一部分:
table | type | possible_keys | key | key_len ranges | range | poly | poly | 34
但是,当我尝试从表中连接几行时points: …