gpt4 book ai didi

SQL 查询中的 JavaScript 数组?

转载 作者:行者123 更新时间:2023-11-29 06:06:03 25 4
gpt4 key购买 nike

是否可以在 sql 查询中使用 javascript 数组?

我想在第二个查询中使用 studentsId 作为参数。

db.query('SELECT users.* FROM users JOIN classes ON users.class_id=classes.id WHERE classes.id ="' + req.body.classSelect + '" ', function (err, rows) {

// Saves all my users id that i get from my first query
var studentsId = [];
for (var i = 0; i < rows.length; i++) {
studentsId.push(rows[i].id);
}
console.log(studentsId);

// in this query i want to use studentsId
db.query("SELECT users.id, users.first_name, users.last_name,attendances.type_id,attendances.attendance_timestamp FROM users JOIN attendances ON attendances.user_id = users.id WHERE attendance_timestamp BETWEEN '2016-01-01' AND '2016-12-31' AND user_id IN ('"+ studentsId +"') ", function (err, result) {
if (err) {
throw err;
}
console.log(result);
});
});

最佳答案

是的,但不完全按照您的方式进行。

我会改变

studentsId.push(rows[i].id);

studentsId.push('"' + rows[i].id + '"');

接下来,更改这一行

db.query("SELECT users.id, users.first_name, users.last_name,
attendances.type_id,attendances.attendance_timestamp FROM users
JOIN attendances ON attendances.user_id = users.id WHERE
attendance_timestamp BETWEEN '2016-01-01' AND '2016-12-31'
AND user_id IN ('"+ studentsId +"') ", function (err, result) {

对此

db.query("SELECT users.id, users.first_name, users.last_name,
attendances.type_id, attendances.attendance_timestamp FROM users
JOIN attendances ON attendances.user_id = users.id WHERE
attendance_timestamp BETWEEN '2016-01-01' AND '2016-12-31'
AND user_id IN (' + studentsId.join(',') + ') ", function (err, result) {

那么您的代码应该可以正常运行。

第一个更改是将引号添加到 ID 中。如果您的 ID 是数字,这可能不是必需的。

第二个更改使用逗号将 ID 连接在一起,因此它们可以在 on 子句中使用。

关于SQL 查询中的 JavaScript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41623242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com