我有一个名为“cars”的mysql表,我在其中存储:“品牌”,“模型”,“颜色”。我想得到这样的数据:
[
{
brand: "audi",
cars: [
{
"model": "coupe",
"color": "red",
},
{
"model": "a3",
"color": "blue",
},
]
},
{
brand: "renault",
cars: [
{
"model": "modus",
"color": "white",
},
{
"model": "clio",
"color": "green",
},
]
},
...
]
所以,我正在做的是第一个mysql查询,我按品牌分组,然后我迭代结果以获得每个品牌的所有汽车:
const query = "SELECT brand FROM cars GROUP BY brand"
mysql.query(query, values, (err, result) => {
for (let i = 0; i < result.length; i++) {
const query2 = "SELECT model, color FROM cars WHERE brand = ?"
const values2 = [result[i].brand]
mysql.query(query2, values2, (err2, result2) => {
result[i].cars = result2
callback(result)
})
}
})
我正在展示的代码正在运行,但我不认为对mysql查询进行迭代是一件好事。
我做了很多研究,我真的不知道该怎么做。
是否可以通过一个单独的mysql查询获得此结果?或者我应该从“cars”表中获取所有行,然后使用JS填充格式化数据?或者我应该继续使用这个mysql查询迭代?
谢谢