Я борюсь с несколько более сложным SQL запросом, который ДОЛЖЕН БЫТЬ в возражении. 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» должен быть значением строки в верхнем / внешнем запросе, который в настоящее время проверяется. В SQL я бы решил это простой строкой вроде ( - это переменная Javascript, переданная в запрос и может быть обработана как жестко запрограммированное значение, it и tagid являются составным ключом)
and EXISTS (SELECT tagid, othercolumn FROM kunstmakler_preselection WHERE tag.id = tagid AND <normal variable> = othercolumn)
Но я совершенно не понимаю, как это сделать в возражении. js. Да, ему нужен внутренний запрос, но КАК мне передать туда этот tag.id? Я полностью потерялся, и ни Справочник по API, ни Книга рецептов не помогут (здесь: https://vincit.github.io/objection.js/recipes/)
Требуется ли здесь соединение? Оно того стоит? [Таблица tagoverview довольно мала, в то время как "InnerTableName" довольно велико]. Я чувствую, что это не может быть решением, поскольку в ülain SQL это был бы такой гладкий одинарный лайнер