例如:
table_user: userId, userName
table_user_course: userId, courseName
现在我想通过node获得这样的结果:
[
{
"userID": 1,
"userName": "mark",
"userCourse": [
{
"courseName": "math"
},
...
]
},
...
]
我是准备这样解决的:
// require("mysql");
// mysql connection
var resData = null;
mysql.query({
sql: 'SELECT * FROM table_user'
}, function(err, rows) {
// if rows && rows.length>0
var usersInfo = [];
for (var row in rows) {
var userInfo = {
userId: row.userId,
userName: row.userName,
userCourse: []
};
mysql.query({
sql: 'SELECT * FROM table_course WHERE userID = '+row.userId
}, function(err, rows) {
/* 这里怎么把获取的信息返回给上面的userInfo.userCourse */
});
usersInfo.push(userInfo);
}
/* 这里怎么把最后的usersInfo赋值给resData */
resData = usersInfo;
});
/* 上面的有很多是伪代码,怕文字表述不清才这样写的,所以大家不要在意个别小错误=。= */
所以请问:
- 用
async
是可以解决单次依赖,那循环多次那块应该怎么办?可以继续用async
解决问题吗? - 有其他办法或途径可以解决吗?比如能否用
sql
语句直接解决问题==#
谢谢大家…