2016-07-07 1 views
-2

値を選択し、私は(ユーザー、名前、価格を)テーブルを持っています。私は最低価格を支払ったユーザーを返すと、価格は1回だけ繰り返されます。私はテーブルから例えば固有の値と分</p> <p>を選択するテーブルからユニークであると分

価格は分かっていません。それはオークションであるためユーザーから与えられます。

user name price 
1  jo  30 
2  ko  50 
3  lo  30 
4  po  55 

例えば

、私が持っている場合は... ...そして勝者は彼の価格が繰り返されていないため、ユーザ2であり、最小です。 30は最小ですが繰り返しです

ユーザー2を返すにはどうすればよいですか?

答えて

0

これを行う方法の1つがここにあります。

SELECT 
    * 
FROM MyTable t0 
WHERE t0.id IN 
    (
    SELECT 
    id 
    FROM 
    MyTable 
    GROUP BY value 
    HAVING count(*) = 1 
) 
ORDER BY value 
LIMIT 1 

MyTable

| id | name | value | 
|----|------|-------| 
| 1 | jo | 30 | 
| 2 | ko | 50 | 
| 3 | lo | 30 | 
| 4 | po | 55 | 

であり、出力はサブクエリが内部に重複を持たないIDを提供する

| id | name | value | 
|----|------|-------| 
| 2 | ko | 50 | 

あります。この場合は2,4となります。

+0

そして、T0で列フィールド名を置き換え

select * from category_list where item_price not in(select item_price from category_list where id not in(select id from category_list group by item_price)) order by item_price limit 1 

このクエリを試してみてください?それは何をreferes? – wade

+0

私はそれを使用しましたが、重複した値を返しました – wade

+0

't0'はエイリアスで、' FROM'節に暗黙の 'AS'(オプション)があります。 'FROM MyTable as t0'と同じです。長い名前を入力するショートカットの方法です。 FYI - https://en.wikipedia.org/wiki/Alias_(SQL) – DaveCoast

1

は、あなたのフィールド名

関連する問題