Я пытаюсь создать естественное объединение двух таблиц с определенным порядком и определенным диапазоном.
Мои таблицы
dictionary
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| wid | int(10) unsigned | NO | PRI | NULL | auto_increment |
| word | varchar(56) | NO | UNI | NULL | |
+-------+------------------+------+-----+---------+----------------+
g219
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| pos | int(10) unsigned | NO | PRI | NULL | auto_increment |
| wid | int(10) unsigned | NO | MUL | NULL | |
+-------+------------------+------+-----+---------+----------------+
словарь имеет набор словарей уникальных (case-чувствительные) слова и теги с присвоенным каждому идентификационный номер.g219 - это, по сути, книга, где pos - это позиция слова / тега в книге, а wid - соответствующий идентификатор слова из словаря.Я могу выполнить полное естественное объединение, чтобы выложить книгу следующим образом:
SELECT word FROM dictionary
NATURAL JOIN g219
ORDER BY g219.pos;
Я также могу применить ограничение, добавив LIMIT [n]
, но это возвращает только первые [N]
результаты.Я не знаю, как ограничить это в указанном диапазоне.Оба
SELECT word FROM dictionary
NATURAL JOIN g219
ORDER BY g219.pos
WHERE pos BETWEEN 50 AND 100;
и
SELECT word FROM dictionary
NATURAL JOIN g219
ORDER BY g219.pos
WHERE pos > 50 AND pos < 100;
терпят неудачу.