我在一个出版物管理应用程序中工作。根据业务逻辑,如果一个出版物的文本具有等于或高于75%的相似度,则该出版物可以属于另一个出版物。因此,在数据库中,我在publications表上创建了一个自关系。
到目前为止,我有以下完美工作的查询:
SELECT
publications.id, publications.body,
similar_publications.id similar_id, similar_publications.body similar_body
FROM publications
LEFT JOIN publications similar_publications
ON similar_publications.id = publications.publication_id
WHERE publications.id = <an-id-here>;问题是,我想将这个查询“转换”为Sequel的DSL,以便简单地以如下方式调用我的模型:Publication.including_similar_publications.where('publications.id = ?', 1)
我知道我需要在我的模型中创建这个方法。我的疑问是:如何实现?Sequel中有没有类似于ActiveRecord命名作用域的东西?另一个问题是,因为我的查询是一个SELF JOIN,所以我需要在LEFT JOIN上使用别名...Sequel允许我以我在查询中公开的方式使用别名吗?如果是,是如何实现的?
https://stackoverflow.com/questions/41363472
复制相似问题