首页 文章

从另一个表中按ID排序时从MySQL表中选择

提问于
浏览
1

这可能是非常简单的事情 . 如果是的话,我道歉 . 我还在学习MySQL .

说,我有两张 table :

Table1:
`id` int autoincrement primary key
`Name` tinytext
`Phone` tinytext
`Date` etc.

Table2:
`id` int autoincrement primary key
`itmID` int

Table2中的每一行都指定了从Table1中选择元素的顺序 . Table2中的 itmID 字段链接到Table1中的 id 字段 .

所以就在这时从表1中选择元素我这样做:

SELECT * FROM `Table1`;

但是你如何根据Table2订购它们,这样的话?

SELECT * FROM `Table1` ORDER BY <itmID's in Table2> ASC;

4 回答

  • 3

    如果 Table1 的所有ID都在 Table2 上有一个条目,请使用 INNER JOIN ,就像这样 .

    SELECT * FROM Table1 t1
    INNER JOIN Table2 t2 ON t1.id = t2.itmID
    ORDER BY t2.itmID
    

    如果不是所有人都有条目,那么使用 LEFT JOIN ,如下所示:

    SELECT * FROM Table1 t1
    LEFT JOIN Table2 t2 ON t1.id = t2.itmID
    ORDER BY t2.itmID
    
  • 4

    从第一个表中选择,将其连接到第二个表,然后按第二个表排序 . 就像是

    SELECT * 
    FROM   table1
    LEFT JOIN table 2 on table.id = table2.id
    ORDER by table2.itmID
    
  • 4

    瑞恩的答案几乎是正确的

    SELECT *
    FROM table1
    INNER JOIN table2 on table1.id = table2.itmID
    ORDER BY table2.id
    
  • 2

    http://dev.mysql.com/doc/refman/5.5/en/join.html

    SELECT * FROM `Table1`
    INNER JOIN `Table2` USING (`id`)
    ORDER BY `Table2`.`itmID` ASC
    

相关问题