我正在尝试编写一个查询,该查询将找到所有我们的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进行分组,但它仍然包含for_flag。也许有一种方法可以要求按顺序排序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;
答案 0 :(得分: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条件,而不仅仅是子查询内部。