我在执行两个表的联接并对两个表使用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?
另外,用左联接代替您的内联接也可以。