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