1

这第一个 squeel 查询给了我我的期望:所有 QuoteStops 的给定报价具有最高序列。

QuoteStop.joins{quote}.group{quote.id}.having{sequence == max(sequence)}.pluck("quote_stops.sequence")

SELECT quote_stops.sequence FROM "quote_stops" INNER JOIN "quotes" ON "quotes"."id" = "quote_stops"."quote_id" GROUP BY "quotes"."id" HAVING "quote_stops"."sequence" = max("quote_stops"."sequence")

[2, 3 ... 2]

但是,如果我将 having 子句中的比较更改为<SQL 看起来是正确的,但是当我想成为所有没有最高序列的 QuoteStops 时,结果是一个空列表。

QuoteStop.joins{quote}.group{quote.id}.having{ sequence < max(sequence) }.pluck("quote_stops.sequence")

SELECT quote_stops.sequence FROM "quote_stops" INNER JOIN "quotes" ON "quotes"."id" = "quote_stops"."quote_id" GROUP BY "quotes"."id" HAVING "quote_stops"."sequence" < max("quote_stops"."sequence")

[]

我错过了什么?Squeel 或 ActiveRecord 的答案很好。

4

0 回答 0