SQL查询以获得正确的结果

时间:2013-04-24 08:37:51

标签: sql

我在尝试获得以下选择工作时遇到问题。 有人可以帮忙吗? 感谢。

SELECT 
        i.InventoryID,i.AttributeSKUID,s.AttributeValue
    FROM 
        ma_product_inventory i
    LEFT JOIN
        ma_product_attribute_sku s
    ON
        i.AttributeSKUID=s.AttributeSKUID
    LEFT JOIN
        ma_product p
    ON
        p.ProductID=s.ProductID
    WHERE 
        s.ProductID='1'
    AND
        (
        s.AttributeValue='xs'
        OR
        s.AttributeValue='green'
        )

我得到以下结果:

INVENTORYID ATTRIBUTESKUID  ATTRIBUTEVALUE
1   1   xs
1   1   green
2   2   green
3   3   green
4   4   green
5   5   green
6   6   xs

我如何获得AttributeSKUID?

感谢。

4 个答案:

答案 0 :(得分:2)

在查询结尾添加此内容 GROUP BY s.AttributeValue

答案 1 :(得分:2)

尝试使用SELECT DISTINCT,为什么加入 ma_product p ?看来你没有使用那张桌子。

答案 2 :(得分:2)

尝试通过具有count(*)= 2的S.attributeSKUID在kyusan93代码Select distinct(s.attribute),i.inventoryId,s.attributevalue组中添加distinct - 这将使所有attributeSKUID重复两次。希望能帮到你。

答案 3 :(得分:0)

Select s.AttributeSKUID 
from
ma_product_attribute_sku s
LEFT JOIN
ma_product p
ON
p.ProductID=s.ProductID
WHERE 
s.ProductID='1'
AND
(s.AttributeValue='xl'
OR
s.AttributeValue='red')
Group by 
S.AttributeSKUID
having count(*) = 2