数据库
首页 > 数据库> > mysql-按x分组,其中y = A,B和C

mysql-按x分组,其中y = A,B和C

作者:互联网

我有一个存储产品价格信息的表.它具有产品ID,数量和折扣的列. (用户购买2折1英镑,购买3折2英镑,等等).

我想拉所有具有特定数量折扣的产品.例如,仅购买1,2或3的产品分别有£5,£10和£20的折扣.

我怎样才能做到这一点?

我想按产品ID分组,其中有三行符合我的条件-没有其他产品.

解决方法:

没有经过测试(取决于您的架构),但是这里是这样的:

SELECT P.id, count(P.id)
FROM products P
  LEFT JOIN discounts D ON P.id = D.product_id
WHERE
  (D.quantity = 1 AND D.amount = 5)
  OR (D.quantity = 2 AND D.amount = 10)
  OR (D.quantity = 3 AND D.amount = 20)
GROUP BY P.id
HAVING count(P.id) = 3

标签:mysql,group-by
来源: https://codeday.me/bug/20191208/2092289.html