父查询中每一行的子查询 - Node.js 和 node-mssql
Child query for each row in Parent query - Node.js and node-mssql
我正在尝试找出使用 Node.JS 和 node-mssql 执行以下操作的最有效方法。我想要这样的最终结果:
{
movie_id: '1234',
name: 'Hereditary',
countries: [
"Canada",
"United States",
"Australia"
]
},
{
movie_id: '1235',
name: 'Rosemarys Baby',
countries: [
"Canada"
]
}
我的 table 看起来像这样
电影:
movie_id | name
---------------------
1234 | Hereditary
1235 | Rosemarys Baby
movie_countries:
id | movie_id | country
---------------------
1 | 1234 | Canada
2 | 1234 | United States
3 | 1234 | Australia
4 | 1235 | Canada
到目前为止,我已经尝试了 mssql Github 页面中的几个不同示例。我能够从 "movies" table 中获得结果,但是在尝试获取每部电影的国家/地区时我遇到了困难。
获取电影 table 和 movie_countries table 各自变量中的所有数据。
movies.forEach(function(movie) {
movie.countries = _.remove(movie_countries, function(mc) {
return movie.movie_id === mc.movie_id; //Edited this from = to ===
});
});
Sql 方式:SELECT mv.movie_id, mv.name, GROUP_CONCAT(mvc.country) AS countries FROM movies mv LEFT JOIN movie_countries mvc ON mv.movie_id = mvc.movie_id WHERE 1 GROUP BY mv.movie_id
movies.forEach(function(movie) {
movie.countries = movies.countries.length ? movies.countries.split(',') :[];
});
我正在尝试找出使用 Node.JS 和 node-mssql 执行以下操作的最有效方法。我想要这样的最终结果:
{
movie_id: '1234',
name: 'Hereditary',
countries: [
"Canada",
"United States",
"Australia"
]
},
{
movie_id: '1235',
name: 'Rosemarys Baby',
countries: [
"Canada"
]
}
我的 table 看起来像这样
电影:
movie_id | name
---------------------
1234 | Hereditary
1235 | Rosemarys Baby
movie_countries:
id | movie_id | country
---------------------
1 | 1234 | Canada
2 | 1234 | United States
3 | 1234 | Australia
4 | 1235 | Canada
到目前为止,我已经尝试了 mssql Github 页面中的几个不同示例。我能够从 "movies" table 中获得结果,但是在尝试获取每部电影的国家/地区时我遇到了困难。
获取电影 table 和 movie_countries table 各自变量中的所有数据。
movies.forEach(function(movie) {
movie.countries = _.remove(movie_countries, function(mc) {
return movie.movie_id === mc.movie_id; //Edited this from = to ===
});
});
Sql 方式:SELECT mv.movie_id, mv.name, GROUP_CONCAT(mvc.country) AS countries FROM movies mv LEFT JOIN movie_countries mvc ON mv.movie_id = mvc.movie_id WHERE 1 GROUP BY mv.movie_id
movies.forEach(function(movie) {
movie.countries = movies.countries.length ? movies.countries.split(',') :[];
});