gpt4 book ai didi

mysql - 从多个表中进行选择,其中结果在另一个表上出现的数量少于 X 数量

转载 作者:行者123 更新时间:2023-11-29 14:00:58 24 4
gpt4 key购买 nike

我不确定提出这个问题的最佳方式,所以提前感谢您解决我的困惑。

这是我提出的查询:

SELECT a.id FROM assets a, courseAssets ca, courses c, assetTags at WHERE c.courseUser = {$userId} AND c.id = ca.courseID and ca.assetID = a.id AND count(at.assetID = a.id) <5

这一直有效到第三个“和”。之后,我尝试获取结果并在 assetTags 中找到它们,并且只返回出现次数少于 5 次的 id。

希望这是有道理的,我可以看到它,我只是不知道如何一路到达那里。我确信有一个 UNION、Join 或其他东西。

最佳答案

您不能将 count 等聚合函数与“普通”列选择混合使用。
为避免这种情况,请使用group by并将聚合条件放入having子句中。

SELECT a.id 
FROM assets a
inner join courseAssets ca on ca.assetID = a.id
inner join courses c on c.id = ca.courseID
inner join assetTags at on at.assetID = a.id
group by a.id
having count(distinct at.assetID) < 5

顺便说一句,最好的做法是习惯联接语法。

关于mysql - 从多个表中进行选择,其中结果在另一个表上出现的数量少于 X 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067673/

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