Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从两个表中选择并使用数据创建对象_Mysql_Node.js - Fatal编程技术网

Mysql 从两个表中选择并使用数据创建对象

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_

我正试图从两个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_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 = ?
然后可以在应用程序中构造所需的结构