在MySQL子查询中结果的顺序是否影响实际查询的顺序?我尝试了一下,但是由于有时候看起来是这样,有时候又不是,所以没有得出真正的结果。
例如:
SELECT name FROM people WHERE pid IN (SELECT mid FROM member ORDER BY mdate)
“order by”子句在这种情况下会影响结果的顺序吗?
谢谢。
在MySQL子查询中结果的顺序是否影响实际查询的顺序?我尝试了一下,但是由于有时候看起来是这样,有时候又不是,所以没有得出真正的结果。
例如:
SELECT name FROM people WHERE pid IN (SELECT mid FROM member ORDER BY mdate)
JOIN
。示例如下:select name
from people p inner join member m on p.pid = m.mid
order by p.name
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;
也就是说,将两个表格的结果连接起来。我假设member
可能有重复,你想要每个成员关联的最早日期。
无论外部查询结果是否依赖于子查询中的order by子句,都不应该依赖于顺序。如果您需要外部查询结果的特定顺序,则应在外部查询中显式使用order by子句。据我所知,在子查询中仅在必须在SELECT子句的TOP子句中使用时才使用order by子句是有意义的。