Mój SQL zwraca taki rezultat:
[
{
"date": "2018-04-09T07:01:01.000Z",
"title": "xxx",
"description": "xxx"
},
{
"date": "2018-04-09T07:01:01.000Z",
"title": "yyy",
"description": "yyy"
}
]
Chciałbym móc dopisać do każdego elementu dane z innego selecta, tak, aby wynik wyglądał jak powyżej, ale po "description" była jeszcze jedna informacja np. "category" jako tablica (kilka elementów). Mój kod API:
app.get('/:cat', validator.params(userCat), function (req, res) {
let userCat = req.params.cat;
let itemSQL = "SELECT * FROM tags t INNER JOIN itemtags it ON t.idTag = it.idtag INNER JOIN item i ON it.idItem = i.idItem WHERE t.name = ?";
let tagsSQL = "SELECT name FROM tags WHERE idtag IN ( SELECT it.idtag FROM itemtags it,tags t WHERE it.idtag=t.idtag AND it.iditem= ?)";
connection.query(itemSQL, userCat, function(err, results, fields) {
if (err) {
console.log(err);
res.json({ error: err});
connection.end()
}
for (let i = 0; i < results.length; i++) {
connection.query(tagsSQL, results[i].idItem, function(err, results2, fields) {
if (err) {
console.log(err);
res.json({ error: err});
connection.end()
}
for (let j = 0; j < results2.length; j++) {
results[i]{j}.push({"tags": results2[j].name});
}
});
}
res.json(results);
});
});
Kod jest niestety błędny, ale chciałem nim ukazać "sposób myślenia". W jaki sposób muszę do tego podejść? Głównym moim problemem jest złączenie/doklejenie wyników z jednego results do results w odpowiednie miejsca dla każdego elementu {}