Mysql Query显示记录,因为它在where子句中使用IN()而没有任何排序

时间:2016-09-08 11:33:47

标签: mysql

当我在其中有子查询而没有任何排序时,我需要mysql查询来显示顺序  查询我正在使用的

SELECT * FROM attributes WHERE AttributesID IN (SELECT AttributesID 
FROM processattributes WHERE ProcessID = 166) 

结果我得到如下

 ID        NAME
 218       AA-Delays    
 219       AA-Internal 
 220       AA-External Errors

应该按以下方式获取

ID  Name
219 AA-External Errors
220 AA-Internal 
218 AA-Delays

由于子查询正确返回219 220 218但最终未正确,请在查询中提供帮助

1 个答案:

答案 0 :(得分:0)

内部选择不会以garantied方式返回数据。所以你必须定义你想要的顺序。您可以加入,然后定义这样的订单(但我不知道您想要对另一个表中的哪一列进行排序)

SELECT a.* 
FROM attributes a
JOIN processattributes p on p.AttributesID = a.AttributesID 
WHERE p.ProcessID = 166
ORDER BY <some column in table processattributes>