Почему определенный запрос не выполняется? - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь выполнить следующий запрос с помощью knex.js:

database.raw(
    'SELECT DISTINCT ON(tiger_id) tiger_id, created_at, latitude, longitude, id' +
    'FROM images ' +
    'ORDER BY tiger_id, created_at DESC;'
)  

Любой другой запрос работает хорошо, но этот не выполняется со следующей ошибкой:

error: column "tiger_id" does not exist
at Connection.parseE (/node_modules/pg/lib/connection.js:553:11)
at Connection.parseMessage (/node_modules/pg/lib/connection.js:378:19)
at Socket.<anonymous> (/node_modules/pg/lib/connection.js:119:22)
at Socket.emit (events.js:182:13)
at Socket.EventEmitter.emit (domain.js:442:20)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

Таблица tigers (как вы можете видеть, здесь существует tiger_id столбец): tigers table

Результаты того же запроса, выполненного с помощью pgAdmin (тот же самый запрос knex, который я ожидаю вернуть): query result

Так в чем здесь проблема?Есть ли другой способ получить ожидаемый результат?

1 Ответ

0 голосов
/ 11 октября 2018

Проблема была в том, что я пропустил пробел в конце первой строки, поэтому рабочий запрос:

database.raw(
    'SELECT DISTINCT ON(tiger_id) tiger_id, created_at, latitude, longitude, id ' +
    'FROM images ' +                                               // this one ^
    'ORDER BY tiger_id, created_at DESC;'
) 
...