gpt4 book ai didi

mysql - 按分配给帖子的每个标签的语言对帖子进行计数

转载 作者:行者123 更新时间:2023-11-29 12:11:34 26 4
gpt4 key购买 nike

我有以下表结构:

enter image description here

帖子有一对多标签。每个帖子都指定了一种语言 - 英语或德语。我想获取每个标签的特定语言帖子数 - 换句话说,我需要知道有多少英语和德语帖子分配了特定标签

我想要的结果是这样的:

enter image description here

posts_count_enposts_count_de 是别名。我知道这些表应该进行JOIN编辑,但我不知道如何GROUP查询来获取帖子COUNT。任何帮助或建议表示赞赏。

最佳答案

你的问题的结构基本上是一堆连接、聚合和不同语言的一些条件:

select t.*,
sum(l.code = 'en') as posts_en,
sum(l.code = 'de') as posts_de
from posts p join
languages l
on p.language_id = l.id join
post_tags pt
on pt.post_id = p.id join
tags t
on pt.tag_id = t.id
group by t.id;

一个更大的问题是你的数据结构不一致,我不完全理解。这些帖子有一个与之关联的语言 ID。然而,对于标签来说,语言是跨标签旋转的。为什么不将语言 ID 与标签关联起来。

这会使数据结构更加复杂。您将拥有带有标签 id 的标签表。然后是一个 TagLanguages 表,其中包含到语言的映射。我不确定您的应用程序是否需要这种灵 active ,但在一种情况下使用联接而在另一种情况下不使用联接来访问语言似乎很奇怪。

关于mysql - 按分配给帖子的每个标签的语言对帖子进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30580305/

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