Mysql子查询顺序
mysql子查询中结果的顺序是否会影响实际查询的顺序? 我试过了,但没有得到真正的结果,因为有时看起来是这样,有时则不是 例如: 在这种情况下,“ORDERBY”-子句是否会影响结果的顺序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
谢谢。不行,如果您想根据需要更改订单,最好使用
加入
大概是这样的:-
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;