Объедините две таблицы и поплавок поиска + -10 - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть две таблицы в базе данных SQLite - школы и лица.

Table: schools
+----------+-----+-----+
|   name   |  X  |  Y  |
+----------+-----+-----+
| School 1 | 100 |  40 |
| School 2 |  23 |   2 |
| School 3 |  98 | -50 |
+----------+-----+-----+

... и ...

Table: persons
+----------+----------+----------+
|  person  | person_X | person_Y |
+----------+----------+----------+
| Person 1 |       95 |       42 |
| Person 2 |       24 |        4 |
| Person 3 |       98 |      -10 |
| Person 4 |      160 |      111 |
+----------+----------+----------+

Я хочу перечислить всех лиц, где person_X иperson_Y соответствует X и Y в школьной таблице + -10.Поэтому в этом случае я хотел бы, чтобы результатом было: Человек 1 и Человек 2 (потому что они близки к Школе 1 и Школе 2).

Я пробовал много способов, но заставить его работать только.Может кто-нибудь помочь мне?

1 Ответ

0 голосов
/ 14 февраля 2019

Это просто требует объединения с критериями, которые проверяют перекрытие диапазона:

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;

enter image description here

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...