gpt4 book ai didi

mysql - node.js 使用两个表获取 mysql 数据

转载 作者:行者123 更新时间:2023-11-29 13:09:28 24 4
gpt4 key购买 nike

表格列表

id |用户 ID |姓名

1 | 3 |列表A
2 | 3 |列表B

餐 table 名人

id |用户 ID |列表 ID |名人代码

1 | 3 | 1 | AA000297
2 | 3 | 1 | AA000068
3 | 3 | 2 | AA000214
4 | 3 | 2 | AA000348

我正在寻找这样的 JSON 对象

[ {id:1, name:'ListA', 名人:[{celebrity_code:AA000297},{celebrity_code:AA000068}]},

{id:2,姓名:'ListB',名人:[{celebrity_code:AA000214},{celebrity_code:AA000348}]}
]

最佳答案

由于详细信息越来越长,因此将其移至答案,我认为其他引用文献对 future 的读者很有用。

由于您使用的是 MySQL,请查看 GROUP_CONCAT 。要获取对象,您需要对 CONCAT 生成的字符串进行 GROUP_CONCAT。如果您可以使用类似于 {id:2, name:'ListB',Celebrity_codes:['AA000214','AA000348']} 的架构,您将获得更简单的查询。如果你做了 SQLfiddle您的基本架构(基本上是您创建的表加上上述示例数据的插入),有人甚至可能为您编写它。 :-)

需要明确的是,虽然 GROUP_CONCAT 可以做到这一点,但如果您尝试生成的不仅仅是一个相当简单的模式,它会变成一些非常困惑的代码,并且开始变得越来越有意义从代码维护的角度以及性能和可扩展性的角度考虑,将其移至您的应用程序层。

另请注意,对于其他数据库,SQLLite 支持 GROUP_CONCAT:

关于mysql - node.js 使用两个表获取 mysql 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22294711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com