我正在尝试执行嵌套查询,以便根据早期的select语句插入到表中。但是我遇到了麻烦,因为我的第一个select语句选择了行的AVG()。我无法找到一种方法来获取结果行对象,我必须选择属性'AVG(row)'而不是尝试调用.AVG()。代码如下,任何帮助将不胜感激。
var sql1 = 'SELECT tropename, AVG(criticScore) FROM tropesWithScore where tropeName = '+ '\'' + trope + '\'';
//console.log(sql1)
con.query(sql1, function (err1, result1) {
if (err1) throw err1;
Object.keys(result1).forEach(function(key) {
var row2 = result1[key];
var trope2 = row.tropeName;
console.log(trope2)
var avgScore = row.AVG(criticScore)
console.log(avgScore)
sql = 'INSERT INTO TropesWithAverageScores (tropeName, criticScore) VALUES (' + trope2 + ',' + '\'' + avgScore + ')';
///console.log(sql)
con.query(sql, function (err, result) {
if (err) {}
});
});
});
答案 0 :(得分:0)
自己修正了,
首先,我在行上获取属性,而不是row2对象。
其次我通过别名我的第一个选择状态来简化它,所以它现在读取
SELECT tropename, AVG(criticScore) as avgCS FROM tropesWithScore where tropeName = '+ '\'' + trope + '\'';
希望这有助于其他人!