我正在尝试在具有特定顺序和特定范围的两个表上建立自然联接。

我的桌子

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    |                |
+-------+------------------+------+-----+---------+----------------+


词典具有一组唯一(区分大小写)的单词和标签的词典,每个单词和标签均分配有一个ID号。 g219本质上是一本书,其中pos是单词/标签在书中的位置,而wid是字典中相应的单词id。我可以执行一个完全自然的连接来布置这本书,如下所示:

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;


失败。

最佳答案

首先是“ WHERE”,然后是“ ORDER BY”;)

关于mysql - Mysql复杂的自然联接选择语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50837734/

10-11 15:39