gpt4 book ai didi

mysql计数并连接4个表

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

我有以下表结构:

文件夹
id |标题 | is_hidden

对象
id |名称 |是_隐藏 |文件夹_id

表格标签
id |名称

label_to_folder
id |标签 ID |文件夹_id

  • 每个对象始终属于一个文件夹。
  • 每个文件夹可能属于一个或多个标签(由label_to_folder 表定义)

我正在尝试获取最常用(流行)的标签,并且我通过以下查询实现了它(我认为:P):SELECT COUNT(lf.label_id) AS cnt, lf.label_id, l.name FROM label_to_folder lf JOIN label l ON lf.label_id=l.id GROUP BY lf.label_id ORDER BY cnt DESC limit 8

我遇到的问题是上述查询的范围,因此它不计算隐藏文件夹 (folder.is_hidden=1) 或空文件夹(空文件夹是根本没有对象的文件夹,或者文件夹的所有对象都是隐藏)

感谢任何帮助。

编辑

sqlfiddle:http://sqlfiddle.com/#!9/65526/1结果包括 id 为 5 的文件夹,但其所有文件夹都是空的 - 这就是我想要消除的。

最佳答案

您将因此获得使用过的文件夹:

select f.id
from folder f
where f.is_hidden = 0
and exists
(
select *
from object o
where o.folder_id = f.id
and o.is_hidden = 0
)

然后您可以将其添加到您的查询中:

where lf.folder_id in (<above subquery>)

关于mysql计数并连接4个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33958789/

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