我在执行两个表的联接并对两个表使用HAVING进行过滤时遇到了mysql问题。

假设我的表如下所示:

产品:

id | Name
1  | Product 1
2  | Product 2
3  | Product 3


评论:

Name     | Product_id | score
Review 1 | 1          | 10000


我的最佳猜测是以下内容,但它不起作用:

SELECT "products".*, sum("reviews".score) FROM "products" INNER JOIN "reviews" ON "reviews"."empire_id" = "products"."id" GROUP BY products.id HAVING sum("reviews".score)=0;


我想得到的分数为0的产品,这意味着它们尚未经过审查。我觉得这应该很容易,但是我似乎无法弄清楚。

最佳答案

听起来您希望产品显示在“产品”表中,而不显示在“评论”表中。也许看看SQL - find records from one table which don't exist in another

另外,用左联接代替您的内联接也可以。

10-01 08:31
查看更多