У меня проблемы с выяснением того, как добавить несколько запросов "и", которые содержат внутри них запросы 'или'
В результате я хочу получить примерно такой результат:
select * from model where attribute1 = value1 and (attribute2 = value2 or attribute3 = value2)
Это код, который я сейчас пытаюсь:
let result = await new Model().query(qb => {
qb.where('attribute1', 'value1')
qb.where(function () {
this.where('attribute2', 'value2')
this.orWhere('attribute3', 'value2')
})
}).fetchAll()
Но дело в том, что запрос выполняет только первое условие, которое я пишу
Если я поставлю скобку «или» условие сначала вывод:
select * from model where (attribute2 = value2 or attribute3 = value2)
В то время как, если я сначала ставлю нормальное условие, вывод будет:
select * from model where attribute1 = value1
Похоже, что запросы не «дополняются» (если это правильное слово) оператором «и»
Я знаю, что если я использую обычные операторы where, запросы «добавляются»
Пример :
let result = await new Model().query(qb => {
qb.where('attribute1', 'value1')
qb.where('attribute2', 'value2')
}).fetchAll()
Выходы:
select * from model where attribute1 = value1 and attribute2 = value2
Есть предложения?