gpt4 book ai didi

mysql - 根据 "parent"表的主键从关系表中选择所有记录作为数组

转载 作者:行者123 更新时间:2023-11-30 21:39:14 24 4
gpt4 key购买 nike

我有这些表:

用户:

+----+--------+
| Id | Name |
+----+--------+
| 1 | Name 1 |
| 2 | Name 2 |
+----+--------+

文档组:

+----+-----------------+
| Id | Name |
+----+-----------------+
| 1 | Document name 1 |
| 2 | Document name 2 |
| 3 | Document name 3 |
+----+-----------------+

用户文档组:

+----+---------+--------------+
| Id | User_id | Document_id |
+----+---------+--------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 2 |
| 4 | 1 | 3 |
+----+---------+--------------+

我希望结果看起来像这样:

result = [
1, "Name 1", ["Document name 1", "Document name 2", "Document name 3"]
2, "Name 2", ["Document name 2"]
]

问题是我什至不知道如何开始......

目前,我正在后端解析大量数据并在那里进行分组/映射(使用 PHP),但我遇到的问题是对于大型数据集,它需要很长时间(大约 10 秒).. .

有没有办法在 MySQL 中创建这样的查询?

最佳答案

也许是这样的?

select 
group_concat(concat(users.id, ',', concat('\"',users.name,'\"'), ',',
concat('[',all_documents,']')), ';')
as final_result
from users
join
(
select group_concat(concat('\"',documents.name,'\"'))
as all_documents,users.id
from users_documents, users, documents
where documents.id=users_documents.document_id and
users.id=users_documents.user_id
group by users.id
) temp1 on users.id = temp1.id

关于mysql - 根据 "parent"表的主键从关系表中选择所有记录作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52520386/

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