JavaScript sql结果行,使用名称中带括号的属性

时间:2018-04-03 16:40:46

标签: javascript sql node.js attributes

我正在尝试执行嵌套查询,以便根据早期的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) {}
                    });
                });
            });

1 个答案:

答案 0 :(得分:0)

自己修正了,

首先,我在行上获取属性,而不是row2对象。

其次我通过别名我的第一个选择状态来简化它,所以它现在读取

SELECT tropename, AVG(criticScore) as avgCS FROM tropesWithScore where tropeName = '+ '\'' + trope + '\'';

希望这有助于其他人!