MySQL选择列的所有值相同的记录?

时间:2014-05-08 15:49:49

标签: php mysql symfony doctrine

我一直在研究产品数据库架构,其中一个要求是,为了将产品视为已停产,必须将所有产品外壳设置为停用。

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。

1 个答案:

答案 0 :(得分:1)

如果列availabilityId的值对于每个productId具有相同的值,则最大值和最小值相等。因为那应该是

GROUP BY productId 

HAVING (MIN(availabilityId) = 1 AND MAX(availabilityId) = 1)

产生预期的结果。