Проблема с внутренним соединением NodeJS Express

#mysql #sql #node.js #express

#mysql #sql #node.js #экспресс

Вопрос:

Я использую NodeJS с Express и пытаюсь выполнить инструкцию inner join следующим образом:

     getAllGrades: function(callback) {
    var sql = "SELECT * FROM questions INNER JOIN questionanswers ON (questions.questionNo=questionanswers.questions_questionNo) WHERE questionanswers.users_userNo = 2 AND questionanswers.softdel = 0";
    con.query(sql, function(err, result) {
        if (err) {
            callback(err, null);
        }
        else {
            callback(null, result);
        }


    });

},
  

Эта функция обратного вызова работала для моих предыдущих запросов и работает для обычных операторов select, однако этот обратный вызов всегда возвращает null. Я ввел это точное утверждение в MySQL Workbench и получил результат:

 SELECT * FROM questions INNER JOIN questionanswers ON (questions.questionNo=questionanswers.questions_questionNo) WHERE questionanswers.users_userNo = 2 AND questionanswers.softdel = 0;
  

Почему этот запрос NodeJS возвращает null, когда мой компилятор SQL этого не делает?

Ответ №1:

Супер глупо, забыл добавить имя моей базы данных.. SELECT * FROM mydb.questions INNER JOIN questionanswers ON (questions.questionNo=questionanswers.questions_questionNo) WHERE questionanswers.users_userNo = 2 AND questionanswers.softdel = 0;

Ответ №2:

Вам не нужно будет добавлять имя базы данных, если вы настроите его в своем msql.createConnection

например:

 var connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password : 'yourPasswordHere',
  database : 'mydb'
});