2009-04-21 6 views
1

を失うことなく、二重のエントリを見つけます。この例ではSQL:私はこのようになります1台「製品」を持っているID

 
ID  Product  Shop Color 
01  Car   A  Black 
02  Car   B  Black 
03  Bike  C  Red 
04  Plane  A  Silver 
05  Car   C  Black 
06  Bike  A  Red 

を、製品は常にそれがあるショップから独立して、同じ色を持っています販売されている。 Colorプロパティを使用して、別の一連の製品を返すクエリを作成したいとします。私はIDを持っている必要があります、それは私がフォローアップクエリを行うことを可能にする任意のIDである可能性があります。

クエリの結果は次のようになります。

 
ID  Product  Color 
01  Car   Black 
03  Bike  Red 
04  Plane  Silver 

私が試した:

SELECT DISTINCT 
    Product, Color 
FROM 
    Products 

をしかし、それは明らかに私が参加する必要が推測するだけでなく

IDを返しません。何か、私のSQLの知識はあまりにも貧しいです。私はこれが単純なものであることを望みます。

答えて

8

これは、あなたが望む結果を得るための一つの方法だろう:どのように約

SELECT 
    Product, Color, Min(ID) 
FROM 
    TABLE 
GROUP BY 
    Product, Colour 

ユニークな製品/色の組み合わせと、最初に見つかった(最低)IDを返すだろうと

SELECT min(ID), Product, Color FROM table GROUP BY Product, Color; 
3

0

GROUP BY句を使用する必要があります。

同じであるが、得maximunのID:

SELECT MAX(ID) AS ID, Product, Color 
FROM Products 
GROUP BY Product, Color 
ORDER BY ID 
関連する問題