0

我正在尝试编写一个查询,该查询将找到我们所有具有下拉和样本混合选项的 sku。

我们有一个存储此信息的表,但设置有点奇怪。对我来说很重要的专栏是。

-------------------------------------------
sku | option_flag | swatch_flag | sequence
-------------------------------------------

sku 可能有多个重复记录,因为其他列会根据 sku 的设置方式而变化。

我的预期结果是这样的。

-------------------------------------------
 sku  | option_flag | swatch_flag | sequence
-------------------------------------------
aa001 |      YES    |    NO       |     1
-------------------------------------------
aa001 |      YES    |    YES      |     2
-------------------------------------------
aa001 |      YES    |    NO       |     3
-------------------------------------------

到目前为止,我有这个,它是按 sku 分组的,但它仍然不包括 option_flag。也许不是按 sku 分组,有没有办法要求按 1 2 3 - 1 2 3 等顺序对其进行排序。

SELECT a.*
FROM sku_parent_attributes AS a
INNER JOIN
    (SELECT sku
    FROM sku_parent_attributes
    WHERE option_flag = 'yes'
    GROUP BY sku
    HAVING COUNT(sku) = 3) AS b
ON a.sku = b.sku;
4

1 回答 1

0

试试这个:

SELECT a.*,b.sku
FROM sku_parent_attributes AS a
INNER JOIN
sku_parent_attributes as b
ON a.sku = b.sku
GROUP BY b.sku
HAVING COUNT(b.sku) = 3

完整查询内的 where 条件,而不仅仅是子查询内的条件。

于 2013-04-01T16:58:39.217 回答