【发布时间】:2019-01-03 17:39:47
【问题描述】:
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 查询是否可以通过这种方式检索已经按类别分组的文章列表:
Cat1
- 第 1 条
- 第二条
猫2
- 第 1 条
- 第三条
Cat3
- 第 2 条
- 第三条
【问题讨论】:
-
你不应该在列中使用逗号分隔值..你应该规范化相关数据
-
你好,你说的很对,我会在两个表之间放一个中间表来避免逗号。
-
然后发布正确的数据结构,以便可以正确回答您的问题