Knex.js, где Clause содержит обязательное AND и необязательное OR - SQL - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть таблица базы данных SQLite Сотрудников

Имя таблицы: Сотрудник

ID    Name    Country   CountyID   Status
1     John    IN        1          Active
2     Jack    US        1          InActive
3     Emma    UK        1          Active
4     Josh    US        1          Active
5     Jill    US        0          Active

Мне нужно выбрать 'Active' человека, чьинаходится в 'IN' и 'US' ИЛИ ​​CountyID '1'.

Пример кода:

const dbContext = require("knex")({
        client: "sqlite3",
        connection: {
            filename: filename.db
        },
        useNullAsDefault: true
});

const persons = dbContext('Employee').where({Status: 'Active'}). ???

SQL-запрос

SELECT * FROM Employee WHERE Status = 'Active' AND (Country IN ('IN', 'US') OR CountyID = 1)

Мне требовался эквивалентный запрос Knex.Пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 12 декабря 2018

Что-то вроде этого должно сделать это:

dbContext('Employee').where('Status', 'Active').where(builder => {
  builder.whereIn('Country', ['IN', 'US']).orWhere('CountyID', 1);
})
...