Mysql 获取聚合查询结果
我有两张桌子:tbl_食谱和tbl_说明。每个方向都有一个外键,它是配方的主键 最后,我希望能够显示一个json结果,该结果类似于为简洁起见省略的以下其他道具:Mysql 获取聚合查询结果,mysql,Mysql,我有两张桌子:tbl_食谱和tbl_说明。每个方向都有一个外键,它是配方的主键 最后,我希望能够显示一个json结果,该结果类似于为简洁起见省略的以下其他道具: [ { "id": 1, "name": "Sandwich", ... "directions": { [ { ... "recipe_id": 1, "directions": "Get bread"
[
{
"id": 1,
"name": "Sandwich",
...
"directions": {
[
{
...
"recipe_id": 1,
"directions": "Get bread"
},
{
...
"recipe_id": 1,
"directions": "Spread"
}
]
}
},
{
"id": 2,
"name": "Fried Eggs",
...
"directions": {
[
{
...
"recipe_id": 2,
"directions": "Heat pan"
},
{
...
"recipe_id": 2,
"directions": "Crack eggs"
}
]
}
}
]
我能想到的一件事是从tbl_配方中选择*,然后循环搜索结果并查询每个结果的方向。我几乎可以肯定的是,必须有一种更好/正确的方法来做到这一点
tbl_配方
身份证号码:1,姓名:三明治
身份证号码:2,姓名:煎蛋
tbl_方向
id:1,食谱\u id:1,说明:买面包
id:2,配方\u id:1,方向:摊铺
id:3,配方\ id:2,使用方法:热锅
id:4,食谱\u id:2,说明:打碎鸡蛋
谢谢 您可以使用左连接查询结果,并对重复行的结果进行后期处理,如您所述 从配方r中选择*在r.id=d.recipe\U id上左连接方向d 在执行查询并在后期处理中获取结果后,尝试维护配方与方向列表的映射,如map,并将配方对应的方向添加到列表中 此外,我还建议您看看像MongoDB这样的文档数据存储,因为您的数据集似乎非常接近文档存储的用例
希望这有帮助 你会想要一个。谢谢@ChrisG。我的脑海中确实出现了一个连接,但随后我将得到多个重复的配方行。我是否应该对结果集进行一些后处理?您需要尽可能简短地提供示例表数据以及希望结果是什么样的。这样我们就可以建议一个合适的连接查询。SQL非常强大;我们的目标通常是以不需要后期处理的方式编写查询。至于结果,我在第一次发布时已经将其作为示例json结果包含在内。谢谢基本思想是:谢谢@aarish。这可能是一种方法,但上面评论中的ChrisG表示,可能有一种方法可以避免后期处理,让SQL完成大部分工作。你怎么认为?