表关系:
问题:
如何使用原生sql语句查询如图数据呢?
期望数据结构(产品的列表项以个嵌套对象出现):
{
"category": [
{
"id": 1,
"name": "name1",
"product":[
{
"id":2,
"detail":"水果"
},
{
"id":8,
"detail":"鲜花"
}
]
}
]
}
有两种方式,
category
,然后遍历category
查出每个category
的product
,会导致N+1
查询问题category
,然后将所有的category.id
做in
查询,在内存中根据关系匹配,只要2
次查询。推荐第二种,栗子:
取出你要的
category
列表1
中得出的id
放到in
中联合查询category_product
和product
,得到product列表将
2
中得到的product
根据category_id
放到1
中的对应的category.product
数组中