Соедините tableA.column1 с tableB, где tableA.column1 находится между tableB.column2 и tableB.column3 - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть две таблицы: user, zone

# user table
CREATE TABLE `customers_users` (
    `userid` INT(10),
    `username` VARCHAR(12),
    `homePhone` VARCHAR(10)
)
# zone table
CREATE TABLE `zone` (
    `id` INT(10),
    `range_from` VARCHAR(10),
    `range_to` VARCHAR(10),
    `zone` VARCHAR(10)
)

Таблица zone определяет, к каким зонам относятся разные телефонные номера.

Для данной таблицы зон:

| range_from | range_to   | zone   |
| 0260000000 | 0261000000 | Zone 1 |
| 0261000001 | 0262000000 | Zone 2 |
| 0262000001 | 0263000000 | Zone 3 |

Следующий результат будет желаемым:

| homePhone  | zone   |
| 0260000001 | Zone 1 |
| 0260000011 | Zone 1 |
| 0261000001 | Zone 2 |
| 0261000101 | Zone 2 |
| 0262000001 | Zone 3 |
| 0262001001 | Zone 3 |

Вопрос в том, как мне присоединить пользовательскую таблицу к таблице зон, чтобы получить этот результат.

1 Ответ

0 голосов
/ 22 сентября 2011

Условия присоединения достаточно гибкие:

select c.homePhone, z.zone
from customers_users as c
join zone as z on c.homePhone between z.range_from and z.range_to
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...