3

我正在尝试对事先已知的值列表进行连接。在以下示例中 - 获取列表中每个 sku 的价格。

我找到了一个建议使用“with”功能的链接: https ://funprog.srid.ca/haskell/values-in-esqueleto-persistent.html

但是我在这里超出了我的深度,不知道该怎么办。在值列表上执行连接的最简单方法是什么?(使用 CTE 支持和“with” - 或以其他方式)

这是我的尝试(不编译):

-- items :: [(SkuId, Int)]
-- itemsPrices :: [(SkuId, Int, Double)]

itemsPrices <- select $ do
   cte <- with $ do
      toAlias (val items)
   (sku :& price) <-
      from $ cte
      `InnerJoin` Table @Price
      `on` (\(sku :& price) ->
         price ^. PriceSku ==. val (fst <$> sku))
   pure (fst <$> sku, snd <$> sku, price ^. PriceValue)
4

0 回答 0