问题标签 [esqueleto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - 在 Maybe Relation 上运行 join
我有一个模型
和一个模型
我想在连接查询中获取与分配关联的所有文件。我已经尝试过 Esqueleto 和runJoin
withselectOneMany
但没有任何运气,所以我正在考虑不使用连接或使用 rawSql。这似乎真的不是一个好主意,但我无法弄清楚这一点。是否支持该功能?
sql - Esqueleto/raw SQL——通过对另一个表的排序结果对查询进行排序?
实际上,我对 SQL 的工作方式有点陌生——我总是让我的 ORM 为我处理一切。但是在这种情况下,Persistent 没有公开这种功能,所以我不知道该怎么做。
我有一个多对多的关系:
我想主要按标签最近条目的日期(降序)对标签进行排序,其次是标签(升序)。
TagCar
的最新条目是 1 月 3 日,所以它排在第一位。TagApple
的最新条目是 1 月 2 日,但 tag 也是如此Boat
。但是,标签按字母顺序位于标签Apple
之前,因此是 2nd 和3rd:Boat
Apple
Boat
通过我的研究,我发现我需要某种连接组合来做到这一点。但是到目前为止,我只找到了一对多关系的解决方案(通过他们最近的帖子在一个线程中排序主题),我想我理解它们,但没有一个涉及多对多的这些三向连接关系。
我将原始 sql 作为一个可能的答案,因为我认为我真的只是要求使用 sql 方法来完成它,即使我使用 Esqueleto 进行 SQL 绑定,我认为一旦我理解了 SQL,翻译成 Esqueleto 会很简单。我使用 postgresql 作为我的后端,但我宁愿不使用 postgres 特定的东西,因为我的绑定是针对一般后端的。
有人知道我可以从哪里开始吗?我应该查看什么样的联接以及如何对最近的条目进行排序?
haskell - Esqueleto 简单类型错误
我从hackage 页面直接查询时遇到类型错误。
查询应该选择GolfCourse
名称等于 的a "Miniota"
。
询问:
错误:
我怀疑这个错误与我错误地使用E.val
我现在实际上没有gcs
在 widgetFile 中使用有关。帮助将不胜感激。
postgresql - Esqueleto `selectDistinct` 不起作用
selectDistinct
似乎对我不起作用,这可能是一个简单的错误。查询:
我很确定这代表了有效的 sql 查询:
要查看结果,我有一个测试处理程序来打印结果表。请注意,对于 tpart 1,第 1 轮,有多个洞 1 和洞 2。在 postgresqlSELECT DISTINICT
中删除了这些重复项。
对不起,难以辨认。任何帮助,将不胜感激!
haskell - 如何让 esqueleto 为我生成 SQL 字符串?
如何让 esqueleto 从from
语句中生成 SQL 字符串?
的文档toRawSql
说“您可以只打开持久性的查询日志记录”。MonadLogger
我尝试了所有我能理解的可能形式,但它从未打印任何 SQL。相同的文档还说“手动使用此功能......是可能的,但很乏味”。但是,不会导出该类型的构造函数,也不会QueryType
导出任何返回该类型值的函数。我注意到这QueryType
是 anewtype
并使用unsafeCoerce
!
Connection
即使不需要连接到数据库来生成 SQL,我也被迫提供一个(我通过 SQLite 获得的)。
这就是我所拥有的。一定会有更好的办法。
http://hackage.haskell.org/package/esqueleto-1.3.4.2/docs/Database-Esqueleto-Internal-Sql.html
sql - 动态选择 Database.Esqueleto SQL 运算符
我想Database.Esqueleto
根据存储在数据库中的数据动态创建查询(请参阅DynamicQuery Database.Persist
下面代码片段中的实体)。op
下面的代码可以编译,但由于重复定义(对于 Text 字段类型、op2
Day 字段类型和字段类型) op3
,它不是很优雅Bool
。
是否可以编写一个更通用的函数,类似于op
在定义的所有情况下都可以使用的函数expr
?
尝试重用使用op
的 Day 字段类型op2
会导致以下错误消息:
代码片段如下:
haskell - 如何使用 quasiquoter 向 Database.Persist 模型添加唯一键?
如何使用persistLowerCase
quasiquoter 构建具有两个或多个字段的唯一键?
使用Yesod bookDatabase.Persist
中的指导为简单网站创建模型时,会出现以下错误:
应用程序/模型.hs
应用程序/处理程序.hs
版本:
我错过了一些扩展或忽略了其他东西吗?
haskell - Haskell:Yesod 和 Esqueleto
如何让 Yesod 1.2 中的 runDB 与 Esqueleto 一起工作?
这是错误输出:
我试图按照本教程进行操作,但似乎他们的 runDB 设置与 Yesod 脚手架的设置方式不同。https://github.com/yesodweb/yesod/wiki/Multi-select-field-populated-from-database-(using-esqueleto)
haskell - 加入不同类型之间的 Esqueleto
我正在尝试在现有数据库上使用 Esqueleto,但遇到了这个问题:我需要加入的两列属于不同类型。一个是整数(普通),另一个(“外键”)是字符串而不是整数:-(
在标准 SQL 中编写连接可以正常工作,但使用 Esqueleto,它会抱怨类型 mismtach(这是真的,但我不在乎)。是否有解决方法(例如在 Esqueleto 中进行“转换”或能够添加原始 ON 标准)?
haskell - 如何在 Esqueleto 查询中使用 Group By 和 Sum
我正在尝试使用来自 Esqueleto 的示例查询之一,但我无法编译它。唯一的变化是我在没有连接的情况下使用它。
我有一个看起来像这样的表:
我想这样做:
这是我的查询:
我收到此错误:
我在哪里提供类型信息E.select
?编译器应该能够从中推断t E.^.MyTableCategory
吗?我也尝试使用countRows / groupBy
此处的示例(https://hackage.haskell.org/package/esqueleto-1.4.1/docs/Database-Esqueleto.html)但类似的问题(唯一的区别是我没有加入)
感谢你的帮助。
谢谢!