是否可以使用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一样,它可能会添加缺少的值。但是这失败了,因为delete需要一个m ()类型的monad。
有没有可能这就是Esqueleto所缺少的?
发布于 2019-08-17 13:48:48
我认为现在回答这个问题已经很晚了,但是你可以使用EXISTS
DELETE Table1
WHERE EXISTS (SELECT * FROM Table2 WHERE Table1.ID = Table2.ItemID)发布于 2017-08-14 09:25:10
尝尝这个。
delete $
from $ \(table1 `InnerJoin` table2) -> do
on (just (table1 ^. Table1ID ==. table2 ^. Table2ItemID)发布于 2015-10-09 10:52:27
在MS SQL中,您可以使用您可以通过以下方式使用join删除表
DELETE Table1,Table2 FROM Table1 INNER JOIN Table2
WHERE Table1.Id1= Table2.Id1 and Table1.Id1= '1'https://stackoverflow.com/questions/32835427
复制相似问题