我在一个SQLite数据库中有两个表--学校和个人。
Table: schools
+----------+-----+-----+
| name | X | Y |
+----------+-----+-----+
| School 1 | 100 | 40 |
| School 2 | 23 | 2 |
| School 3 | 98 | -50 |
+----------+-----+-----+...and...
Table: persons
+----------+----------+----------+
| person | person_X | person_Y |
+----------+----------+----------+
| Person 1 | 95 | 42 |
| Person 2 | 24 | 4 |
| Person 3 | 98 | -10 |
| Person 4 | 160 | 111 |
+----------+----------+----------+我想列出学校表+-10中person_X和person_Y与X和Y匹配的所有人。因此,在这种情况下,我希望结果是: Person 1和Person 2(因为他们靠近学校1和学校2)。
我试过很多方法,但都没成功。有人能帮帮我吗?
发布于 2019-02-14 23:22:02
这只需要使用检查范围重叠的条件进行连接:
SELECT
p.person,
s.name
FROM persons p
INNER JOIN schools s
ON p.person_X BETWEEN s.X - 10 AND s.X + 10 AND
p.person_Y BETWEEN s.Y - 10 AND s.Y + 10;

https://stackoverflow.com/questions/54693694
复制相似问题