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

ahm*_*md0 1 mysql select sql-order-by

这可能是一件非常简单的事情。如果是这样,我道歉。我还在学习MySQL。

假设我有两张表:

Table1:
`id` int autoincrement primary key
`Name` tinytext
`Phone` tinytext
`Date` etc.
Run Code Online (Sandbox Code Playgroud)

Table2:
`id` int autoincrement primary key
`itmID` int
Run Code Online (Sandbox Code Playgroud)

表 2 中的每一行指定从表 1 中选择元素的顺序。itmID表 2 中的字段链接到id表 1 中的字段。

因此,此时要从 Table1 中选择元素,我会这样做:

SELECT * FROM `Table1`;
Run Code Online (Sandbox Code Playgroud)

但是如何根据表 2 来对它们进行排序呢?

SELECT * FROM `Table1` ORDER BY <itmID's in Table2> ASC;
Run Code Online (Sandbox Code Playgroud)

She*_*hef 5

如果 的所有 idTable1都有一个Table2使用 的条目INNER JOIN,就像这样。

SELECT * FROM Table1 t1
INNER JOIN Table2 t2 ON t1.id = t2.itmID
ORDER BY t2.itmID
Run Code Online (Sandbox Code Playgroud)

如果不是所有的都有条目,则使用 a LEFT JOIN,如下所示:

SELECT * FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.id = t2.itmID
ORDER BY t2.itmID
Run Code Online (Sandbox Code Playgroud)