我试图从两个MySQL表中获取数据并将每个表推送到数组中。 我必须使用相同的列 - item_id来表项和用户。现在我用
从他们那里请求数据 var query = "SELECT * FROM items, users WHERE items.item_id=?";
query = connection.format(query,req.params.item_id);
在此之后,我得到了一堵数据墙。像这样:
{
{ user_id: 13213,
user_name: 'John',
item_id: 1337,
item_name: Leet stuff,
item_price: 13,37
},
{ user_id: 12345,
user_name: 'Mike',
item_id: 1337,
item_name: Leet stuff,
item_price: 13,37
}
但我真正需要的是:
{
users: [
{ user_id: 13213,
user_name: 'John'
},
{ user_id: 12345,
user_name: 'Mike'
}
],
item_id: 1337,
item_name: Leet stuff,
item_price: 13,37
}
答案 0 :(得分:1)
您无法在单个查询中执行此操作。但是,您可以使用两个不同的查询并组合输出,例如:
SELECT u.user_id, u.user_name
FROM users u JOIN ITEMS i ON j.user_id = i.user_id
WHERE i.item_id = ?;
这将为您提供用户列表。然后,您可以使用以下查询来获取项目详细信息:
SELECT item_id, item_name, item_price
FROM items
WHERE item_id = ?
然后,您可以在应用程序中构建所需的结构。