4

以下のようなデータテーブルがあります。

ID   A   B
10  5    blue
10  8    red
10  10  yellow
20  2    black
20  17  blue
30  7    red
30  12  green
30  50  black

基本的に、次のようなものを出力する mySQL クエリを書きたいと思います。

ID   A   B
10  5    blue
20  2    black
30  7    red

「ID」の一意の値と、各一意の「ID」の「A」の最小値のみが得られます。「B」は、行に付随する追加データです。

クエリはどのように表示されますか?

4

2 に答える 2

5

サブクエリを使用しmin(a)てそれぞれの値を識別しid、それをテーブルに結合することができます。

select *
from yourtable t1
inner join
(
  select min(A) A, id
  from yourtable
  group by id
) t2
  on t1.id = t2.id
  and t1.A = t2.A

SQL FiddlewithDemoを参照してください

結果は次のとおりです。

| ID | A |     B |
------------------
| 10 | 5 |  blue |
| 20 | 2 | black |
| 30 | 7 |   red |
于 2012-12-15T14:42:03.953 に答える
0

あなたのクエリは次のようになります

  SELECT *
  FROM table t1
  INNER JOIN
         (
  SELECT min(A) mi, A, ID
  FROM table
  GROUP BY ID
         ) t2
   ON t1.ID = t2.ID
   AND t1.A = t2.A
于 2012-12-15T14:46:38.333 に答える