我一直在研究产品数据库架构,其中一个要求是,为了将产品视为已停产,必须将所有产品外壳设置为停用。
Product Table:
id
slug
name
一个产品到多个ProductSkus
ProductSku Table
id
slug
name
product_id
product_sku_availability_id
一个ProductSku到一个ProductSkuAvailability
ProductSkuAvaliability
id
slug
name
现在我并不真正需要一个确切的查询,但有没有办法只选择停止所有productSkus.product_sku_availability的产品?这是我要问的样本:
| productId | productSkuId | availabilityId |
| 1 | 1 | 1 |
| 1 | 2 | 1 |
| 2 | 3 | 2 |
| 2 | 4 | 1 |
在上面的示例中,我只想选择productId = 1,因为两个产品skus的availabilityId都是1。
答案 0 :(得分:1)
如果列availabilityId的值对于每个productId具有相同的值,则最大值和最小值相等。因为那应该是
GROUP BY productId
带
HAVING (MIN(availabilityId) = 1 AND MAX(availabilityId) = 1)
产生预期的结果。