Mysql выборка с вложенным запросом + node.js
Есть таблицы (players,items,player_items)
PLAYERS:
----------------
| id | name |
----------------
| 1 | Player1 |
| 2 | Player2 |
----------------
ITEMS:
----------------
| id | name |
----------------
| 1 | Item_1 |
| 2 | Item_2 |
----------------
PLAYER_ITEMS:
----------------
| id | player_id | item_id |
----------------------------
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 1 |
----------------------------
Делаю запрос
pool.query('SELECT players.id,
players.name,
t_items.id AS item_id,
t_items.name AS item_name
FROM players LEFT JOIN player_items ON player_items.player_id = players.id
LEFT JOIN (SELECT * FROM items) t_items ON t_items.id = player_items.item_id
WHERE players.id = ?', [ID], (error,result) => {
if (error) throw error;
if(result.length > 0){
const PLAYERS = [];
result.forEach(el => {
PLAYERS.push({player_id:id,player_name: name, player_items:[{...}]})
Необходимо получить массив -
{
"player_id": "1",
"player_name": "Player1",
"player_items": [{item_id:1,item_name: Item_1},{item_id:2,item_name: Item_2}],
},
{
"player_id": "2",
"player_name": "Player2",
"player_items": [{item_id:1,item_name: Item_1}],
}//и так далее
});
}
});
Необходимо получить массив
{
"player_id": "1",
"player_name": "Player1",
"player_items": [{item_id:1,item_name: Item_1},{item_id:2,item_name: Item_2}],
},
{
"player_id": "2",
"player_name": "Player2",
"player_items": [{item_id:1,item_name: Item_1}],
}//и так далее
Сейчас массив получается такой:
{
"player_id": "1",
"player_name": "Player1",
"player_items": [{item_id:1,item_name: Item_1}],
},
{
"player_id": "1",
"player_name": "Player1",
"player_items": [{item_id:2,item_name: Item_2}],
},
{
"player_id": "2",
"player_name": "Player2",
"player_items": [{item_id:1,item_name: Item_1}],
}//и так далее