使用esqueleto可以进行以下查询吗?
DELETE Table1 FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ItemID
我试过了:
delete $ from $\(table1 `InnerJoin` table2) -> on (table1 ^. Table1ID ==. table2 ^. Table2ItemID)
奇怪的是,这是我在Haskell中遇到的唯一运行时错误之一
ERROR: Syntax error at or near "INNER" LINE 2: FROM "table1" INNER JOIN "table2" ON "tab...
(基本上,DELETE缺少“table1”是不高兴的)
我也尝试在monad中添加一个返回值,与select一样,可能会添加该值.但这失败了,因为删除需要mad()类型的monad.
这可能是Esqueleto遗失的吗?
解决方法
试试这个.
delete $ from $\(table1 `InnerJoin` table2) -> do on (just (table1 ^. Table1ID ==. table2 ^. Table2ItemID)