выберите x, где y равно z, с помощью в postgres

#javascript #postgresql #knex.js

#javascript #postgresql #knex.js

Вопрос:

Есть ли проблема с этим синтаксисом?

Это код (который он использует knex ):

 getAllSubjectsForATutor(knex, id) {
  console.log("I'm id:", typeof id)
  return knex.from('tutors_subjects').select('subjects_id').where('user_id', id)
  .then(data => {
     console.log("I'm data", data)
   })
}
  

Этот код регистрирует

 I'm id: number
I'm data []
  

Несмотря на то, что данные находятся в таблице:

 tutors_app=# SELECT * FROM tutors_subjects;
 subjects_id | user_id 
------------- ---------
          68 |     146
(1 row)
  

И попытка получить данные с помощью psql действительно работает:

 tutors_app=# select subjects_id from tutors_subjects where user_id = 146;
 subjects_id 
-------------
          68
  

Комментарии:

1. запишите также, какой именно номер запрашивается. console.log(«Я id:», typeof id, идентификатор)

Ответ №1:

Выглядит нормально, но, вероятно, какая-то небольшая ошибка, которую мне нравится использовать .debug(true) для тестирования запроса, созданного с помощью knex.

 function getAllSubjectsForATutor(knex, id) {
  console.log("I'm id:", typeof id);
  return knex
    .from('tutors_subjects')
    .select('subjects_id')
    .where('user_id', id)
    .debug(true)
    .then((data) => {
      console.log("I'm data", data);
    });
}