我正在努力解决Nodejs和MySQL后端中的数组问题(Reactive前端)。前端发送一个包含其主体的两个对象的请求,然后API使用这两个对象作为标准对表1执行SELECT查询。此查询的结果是如下所示的对象数组:
[
{
"userID": 245
},
{
"userID": 244
},
{
"userID": 247
}
]然后对表2执行第二个SELECT查询,将来自第一个查询的userID作为条件(每个userID包含表2中的“firstName”和“lastName”属性)。我所要达到的目标如下,我可以把它寄回前线:
[
{
userID: 245,
firstName: "Test",
lastName: "Student1",
},
{
userID: 244,
firstName: "Test",
lastName: "Student2",
},
{
userID: 247,
firstName: "Test",
lastName: "Student3",
},
];以下是我要实现这一目标的功能:
export const view = async (req, res) => {
const { classIdentifier, syllabusCode } = req.body;
// User the connection
db.query(
"SELECT DISTINCT studentID AS 'userID' FROM classIndex WHERE teacherID = ? AND classIdentifier = ? AND syllabusCode = ?;",
[req.params.teacherID, classIdentifier, syllabusCode],
(err, rows) => {
const allData = [];
const final = async () => {
await rows.forEach((row) => {
db.query(
"SELECT userID, firstName, lastName from userIndex WHERE userID = ?",
[row.userID],
(err, data) => {
if (!err) {
data.forEach((users) => {
allData.push({
userID: users.userID,
firsName: users.firstName,
lastName: users.lastName,
});
});
} else {
console.log(err);
}
}
);
});
};
final().then((result) => {
console.log(result);
});
console.log(allData);
}
);
};
请让我知道,如果我可以提供任何更多的代码,任何帮助将不胜感激!
发布于 2022-11-04 10:29:57
您可以使用嵌套查询。现在你跑
SELECT DISTINCT studentID AS 'userID' FROM classIndex WHERE teacherID = ? AND
classIdentifier = ? AND syllabusCode = ?;然后对每个条目进行第二个查询。
您可以将查询组合在一起,让mysql为您完成工作。(我只是不确定在嵌套查询中的那个点是否有不同的地方。)
SELECT firstName, lastName, userID FROM userIndex WHERE userID LIKE (
SELECT DISTINCT studentID
FROM classIndex
WHERE teacherID = ? AND classIdentifier = ? AND syllabusCode = ?
)https://stackoverflow.com/questions/74315402
复制相似问题