Saya mencoba menulis kueri menggunakan ekstensi jarak bumi postgresql dan saya ingin mengembalikan kolom terhitung, tetapi saya terus mendapatkan kesalahan tentang: entri klausa FROM yang hilang untuk tabel "670906,-79". Ini mungkin karena pengurai berpikir bahwa sebuah titik memisahkan nama tabel dari nama kolom, tetapi dalam kasus saya, saya melakukan perhitungan (lihat contoh kueri di bawah). Apakah ada cara untuk mengatasi ini?
Possibly unhandled error: missing FROM-clause entry for table "670906,-79"
at Connection.parseE (/usr/local/lib/node_modules/pg/lib/connection.js:534:11)
at Connection.parseMessage (/usr/local/lib/node_modules/pg/lib/connection.js:361:17)
at Socket.<anonymous> (/usr/local/lib/node_modules/pg/lib/connection.js:105:22)
at Socket.emit (events.js:95:17)
at Socket.<anonymous> (_stream_readable.js:764:14)
at Socket.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:426:10)
at emitReadable (_stream_readable.js:422:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
var columns = [
'id',
'(earth_distance(ll_to_earth(lat, lng), ll_to_earth(43.670906, -79.393331)) as distance)'
];
var result = knex
.select(columns)
.from('stores')
.whereRaw('earth_box(ll_to_earth(43.670906, -79.393331), ?) @> ll_to_earth(lat, lng)', [radiusInStatuteMiles])
Anda harus menggunakan knex.raw
untuk kolom terhitung Anda, sehingga tidak dikutip. Berikut ini harus bekerja:
var columns = [
'id',
knex.raw('earth_distance(ll_to_earth(lat, lng), ll_to_earth(43.670906, -79.393331)) as distance')
];
var result = knex
.select(columns)
.from('stores')
.whereRaw('earth_box(ll_to_earth(43.670906, -79.393331), ?) @> ll_to_earth(lat, lng)', [radiusInStatuteMiles])
Terima kasih! Persis apa yang saya butuhkan. Entah bagaimana tidak berpikir untuk menggunakan knex.raw
.
Terima kasih kembali!
Komentar yang paling membantu
Anda harus menggunakan
knex.raw
untuk kolom terhitung Anda, sehingga tidak dikutip. Berikut ini harus bekerja: