我正在尝试对事先已知的值列表进行连接。在以下示例中 - 获取列表中每个 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)