Mysql Complicated Natural Join Выбрать заявление - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь создать естественное объединение двух таблиц с определенным порядком и определенным диапазоном.

Мои таблицы

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;

терпят неудачу.

1 Ответ

0 голосов
/ 13 июня 2018

Сначала «ГДЕ», затем «ЗАКАЗАТЬ»;)

...