【问题标题】:ORDER BY problem when I use 2 queries in one当我同时使用 2 个查询时出现 ORDER BY 问题
【发布时间】:2020-09-11 19:12:49
【问题描述】:

我有一个简单的查询:

SELECT * FROM `mytable` ORDER BY `mytable`.`date` DESC

所以我选择了所有内容并按日期排序,它可以工作。现在我想在查询中进行查询,例如:

SELECT * FROM (SELECT * FROM `mytable` ORDER BY `mytable`.`date` DESC) test

我只是从第一个查询中选择 *。但是订单不是按日期的。为什么? 我要解决这个问题吗?我不想用 () 在测试查询之外订购它。

【问题讨论】:

  • 因为子查询内部的 order by 被忽略,子查询的结果总是作为无序集返回,所以子查询内部没有使用 order by。

标签: sql sql-order-by


【解决方案1】:

您在最外层的查询中使用order by。期间。

SQL 表和结果集表示 无序 集,但结果集在最外层查询中具有显式 order by 时除外。

这些是 SQL 的规则;这就是数据库的工作方式。

【讨论】:

  • 我想通过外部查询对产品进行 GROUP BY。因此,为每个产品选择的所有最新行(当我不使用 SUM 时,分组选择第一行)。是否有另一种方法可以为每个产品选择最新的行?
  • 您是否介意在您的帖子中添加更多详细信息,例如表架构详细信息以及示例输入数据集以及预期输出。您提供的详细信息越多,就越容易提供更准确的答案。
  • @MacQwerty 。 . .您尝试做的不是正确的 SQL。用样本数据和期望的结果提出一个新问题,并清楚地解释你想要做什么。
猜你喜欢
  • 2012-08-29
  • 1970-01-01
  • 2010-10-27
  • 2017-02-11
  • 1970-01-01
  • 2014-07-09
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多