繁体   English   中英

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

[英]Select from MySQL table while ordering by IDs from another table

这可能很简单。 如果是这样,我深表歉意。 我还在学习MySQL。

说,我有两个表:

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

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

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

所以现在就从Table1中选择元素,我这样做:

SELECT * FROM `Table1`;

但是,您如何根据Table2订购它们呢?

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

从第一个表中选择,将其加入第二个表,然后按第二个表排序。 就像是

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

如果所有的IDS Table1有一个条目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

瑞安的答案几乎是对的

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

http://dev.mysql.com/doc/refman/5.5/zh-CN/join.html

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM