Mysql子查询顺序

Mysql子查询顺序,mysql,subquery,sql-order-by,Mysql,Subquery,Sql Order By,mysql子查询中结果的顺序是否会影响实际查询的顺序? 我试过了,但没有得到真正的结果,因为有时看起来是这样,有时则不是 例如: 在这种情况下,“ORDERBY”-子句是否会影响结果的顺序 谢谢。不行,如果您想根据需要更改订单,最好使用加入 大概是这样的:- select name from people p inner join member m on p.pid = m.mid order by p.name 无论外部查询结果是否依赖于子查询中的ORDERBY子句,都不应该依赖于orde

mysql子查询中结果的顺序是否会影响实际查询的顺序? 我试过了,但没有得到真正的结果,因为有时看起来是这样,有时则不是

例如:

在这种情况下,“ORDERBY”-子句是否会影响结果的顺序


谢谢。

不行,如果您想根据需要更改订单,最好使用
加入

大概是这样的:-

select name 
from people p inner join member m on p.pid = m.mid
order by p.name

无论外部查询结果是否依赖于子查询中的ORDERBY子句,都不应该依赖于order。如果需要外部查询结果的任何特定顺序,则应在外部查询上显式使用ORDERBY子句。另外,只有在必须在子查询的SELECT子句中使用TOP子句时,在子查询中使用order by子句才有意义。

确实不行。数据来自
from
子句。子查询位于
where
子句中。它只是用来过滤行。如果您需要订购:

select p.name
from people p join
     (select member, min(mdate) as minmdate
      from member
      group by member
     ) m
     on p.pid = m.mid
order by minmdate;

也就是说,在两个表之间加入结果。我假设
成员
可能有重复的,并且您希望与每个成员关联的最早日期。

您的外部查询没有
ORDER BY
;因此,秩序无法得到保证


我猜在这种特殊情况下唯一可能受到影响的部分是优化器,它可能会生成不同的执行计划,这取决于子查询结果的排序方式

“不可能”是否意味着绝对没有办法做到这一点?怎么办?在子查询中使用ORDERBY子句是否影响结果顺序?我的回答是否定的。这里不起作用意味着这只是我问题的一小部分,它在其他地方引起了问题,但你已经在这里回答了我的问题:对不起,我没有很清楚地理解你。我的答案回答了你的问题吗???它回答了我的问题。
select p.name
from people p join
     (select member, min(mdate) as minmdate
      from member
      group by member
     ) m
     on p.pid = m.mid
order by minmdate;