gpt4 book ai didi

mysql - 从 2 个不同的表中添加总和

转载 作者:可可西里 更新时间:2023-11-01 08:09:57 25 4
gpt4 key购买 nike

我有这样的东西2张 table :影片成员

在成员表中我有每个成员的名字:

1 Tom
2 Bob
3 Zack
4 Dan
5 Casey

在视频表中,我有一个名为成员的列,其中的名称用逗号分隔

1. Tom,Dan
2. Casey,Zack,Bob
3. Tom,Casey,Dan,Zack
4. Zack,Bob,Dan

我正在尝试显示每个成员出现多少次以获得这些结果:

1 Tom = 2
2 Bob = 2
3 Zack = 3
4 Dan = 2
5 Casey = 2

我是否需要执行类似 SELECT SUM(members) WHERE 并使用 LIKE 之类的操作?

最佳答案

我强烈建议按照其他人的建议规范化您的数据。

根据您当前的设计,您可以使用 FIND_IN_SET完成你想要的结果。

SELECT 
M.id,
M.name,
COUNT(*) total
FROM members M
INNER JOIN videos V ON FIND_IN_SET(M.name,V.members) > 0
GROUP BY M.name
ORDER BY M.id

See Demo

在您给定的数据集上运行此查询,您将获得如下输出:

| id |  name | total |
|----|-------|-------|
| 1 | Tom | 2 |
| 2 | Bob | 2 |
| 3 | Zack | 3 |
| 4 | Dan | 3 |
| 5 | Casey | 2 |

必读

Is storing a delimited list in a database column really that bad?

更多

如果您规范化数据,您的 vidoes 表将如下所示:

视频

id   member_id

关于mysql - 从 2 个不同的表中添加总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39717541/

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