Mysql 从两个表中选择并使用数据创建对象
我正试图从两个MySQL表中获取数据,并将每个表推入数组。 我必须使用相同的列-item_id来访问item和user。现在我用Mysql 从两个表中选择并使用数据创建对象,mysql,node.js,Mysql,Node.js,我正试图从两个MySQL表中获取数据,并将每个表推入数组。 我必须使用相同的列-item_id来访问item和user。现在我用 var query=“SELECT*FROM items,users WHERE items.item_id=?”; query=connection.format(查询、请求参数、项目标识) 在这之后,我得到了一堆数据。像这样: { { user_id: 13213, user_name: 'John', item_id: 1337, item_
var query=“SELECT*FROM items,users WHERE items.item_id=?”;
query=connection.format(查询、请求参数、项目标识)代码>
在这之后,我得到了一堆数据。像这样:
{
{ 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
}
您不能在一个查询中完成此操作。但是,您可以使用两种不同的查询并组合输出,例如:
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 = ?
然后可以在应用程序中构造所需的结构