#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'
});