这可能是非常简单的事情。如果是的话,我道歉。我还在学习MySQL。
说,我有两张桌子:
Table1:
`id` int autoincrement primary key
`Name` tinytext
`Phone` tinytext
`Date` etc.
和
Table2:
`id` int autoincrement primary key
`itmID` int
Table2中的每一行都指定了从Table1中选择元素的顺序。表2中的itmID
字段链接到表1中的id
字段。
所以就在这时从表1中选择元素我就这样做了:
SELECT * FROM `Table1`;
但是你如何根据Table2订购它们呢?
SELECT * FROM `Table1` ORDER BY <itmID's in Table2> ASC;
答案 0 :(得分:4)
从第一个表中选择,将其连接到第二个表,然后按第二个表排序。像
这样的东西SELECT *
FROM table1
LEFT JOIN table 2 on table.id = table2.id
ORDER by table2.itmID
答案 1 :(得分:4)
如果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
答案 2 :(得分:3)
Ryan的答案几乎是正确的
SELECT *
FROM table1
INNER JOIN table2 on table1.id = table2.itmID
ORDER BY table2.id
答案 3 :(得分: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