【问题标题】:How do I get the row with minimum value in a column using Diesel?如何使用 Diesel 在列中获取最小值的行?
【发布时间】:2020-09-07 12:41:29
【问题描述】:

如何使用 Diesel ORM 获取具有最小值的行?我希望它生成一个看起来像这样的查询

SELECT tbl.*
FROM TableName tbl
  INNER JOIN
  (
    SELECT Id, MIN(Point) MinPoint
    FROM TableName
    GROUP BY Id
  ) tbl1
  ON tbl1.id = tbl.id
WHERE tbl1.MinPoint = tbl.Point

【问题讨论】:

    标签: sql orm rust-diesel


    【解决方案1】:

    不扩展diesel提供的dsl,只能通过sql_query表达这个查询。

    应用于此示例,这将导致以下查询:

    sql_query("
    SELECT tbl.*
    FROM TableName tbl
      INNER JOIN
      (
        SELECT Id, MIN(Point) MinPoint
        FROM TableName
        GROUP BY Id
      ) tbl1
      ON tbl1.id = tbl.id
    WHERE tbl1.MinPoint = tbl.Point
    ").load::<ResultType>(&conn)?
    

    其中ResultType 是实现QueryableByName 的类型

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      相关资源
      最近更新 更多