gpt4 book ai didi

php - 检索 SQL 结果,按类别分组

转载 作者:行者123 更新时间:2023-11-29 16:29:27 25 4
gpt4 key购买 nike

我的sql水平比较低,被屏蔽了才来求助的。

所以我有一个包含 2 个表的数据库,一个文章表和一个类别表。在我的文章表中,我有一个字段,其中包含 JSON 格式的所属类别的 ID。

大致上,类别表如下所示:

|    Name    |  id |
| Cat1 | 1 |
| Cat2 | 2 |
| Cat3 | 3 |

表格文章:

|     Title     |   id  |       Categories      |
| Title1 | 1 | [1,2] |
| Title2 | 2 | [1,3] |
| Title3 | 3 | [2,3] |

目前,我按如下方式检索我的文章:

SELECT *
FROM articles a
JOIN categories c
ON JSON_CONTAINS(a.categories, CAST(c.id AS CHAR))

然后在 php 中我按类别对它们进行分组。但我发现这个解决方案不是很干净。

所以我想知道 SQL 查询是否可以检索已按类别分组的文章列表:

类别1
- 第 1 条
- 第 2 条

类别2
- 第 1 条
- 第 3 条

Cat3
- 第2条
- 第 3 条

最佳答案

最好的数据库设计是创建一个新表ArticleCategories来列出每个文章类别:

ArticleID、CatID

一个 ArticleID 可以有多个 CatID...

现在,您可以将多个类别与一篇文章相关联,并使用 SQL 轻松搜索这个新数据库以查找类别和文章之间的相关性。

SELECT    c.category, STRING_AGG(a.title, ',')
FROM articles a
LEFT JOIN articleCategories ac
ON a.id = ac.articleID
LEFT JOIN categories c
ON c.id = ac.categoryID
GROUP BY c.category

关于php - 检索 SQL 结果,按类别分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54027201/

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