[英]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.