我正在处理一个更复杂的sql查询,它必须在objective.js中。以下是迄今为止的代码
const tagEntry = await Tag_overview.query()
.where('playable') //the playable column is a boolean
.whereExists(
InnerTableName.query().findById([<normal variable>, tag.id]) //<= tag.id is the id of the row in the outer query
)
)
.orderBy(raw('random()'))// this randomly orders the selection
.limit(1)
“tag.id”应该是当前正在检查的top/outer查询中的行的值。在sql中,我用一个简单的行来解决它,比如(是一个传递到查询中的javascript变量,可以表示为硬编码值,它和tagid是一个复合键)
and EXISTS (SELECT tagid, othercolumn FROM kunstmakler_preselection WHERE tag.id = tagid AND <normal variable> = othercolumn)
但我完全不知道如何在objective.js中做到这一点。是的,它需要一个内部查询,但是如何在其中传递这个tag.id?我完全迷路了,api参考和食谱都没有任何帮助(在这里可以找到:https://vincit.github.io/objection.js/recipes/ )
这里需要连接吗?值得吗[tagoverview表相当小,而“innertablename”相当大]。我觉得那不是解决问题的办法ü莱恩说,这是一个如此顺利的一行
1条答案
按热度按时间tpxzln5u1#
首先确保在模型中正确声明了复合键
InnerTableName
https://vincit.github.io/objection.js/recipes/composite-keys.html那么你应该能够做到: