识别购买次数超过1次的产品

时间:2020-08-25 14:39:42

标签: mysql sql

我需要确定购买了1次以上的产品。

ERD图如下:

ERD

我写了这个查询

SELECT DISTINCT good_name 
           FROM Goods
           JOIN Payments 
             on Payments.good = Goods.good_id
          WHERE good in (SELECT good 
                           FROM (SELECT good
                                      , COUNT(good) as c 
                                   FROM Payments 
                                  GROUP 
                                     BY good) as a 
                          WHERE c > 1)

可以,但是这段代码很棒吗?

1 个答案:

答案 0 :(得分:-1)

分组会更好:

SELECT good_name 
FROM Goods 
JOIN Payments on Payments.good = Goods.good_id 
GROUP BY Goods.good_id 
HAVING COUNT(Payments.good) > 1

可能还需要在Payments.good列上建立索引。

最好在表Goods中创建另一列,该列将保存成功付款计数并在每次付款后对其进行更新。

相关问题