web-dev-qa-db-ja.com

mysqlテーブルから個別のレコードを取得するにはどうすればよいですか?

私はテーブルを持っていますstudentこのような

id | name | Zip 
1  | abc  | 1234
2  | xyz  | 4321
3  | asd  | 1234

すべてのレコードを取得したいのですが、郵便番号を繰り返さないでください。したがって、上記のテーブルレコードの場合、レコードNo 1および2をフェッチする必要があります。レコードNo. 3には、すでにレコードNo. 1にある郵便番号が含まれているため、フェッチされません。

14
Student
SELECT DISTINCT fieldName FROM tableName;

次のクエリは、個別の「Zip」フィールドのみを選択します。

SELECT DISTINCT Zip FROM student;

SELECT * FROM tableName GROUP BY fieldName;

次のクエリは、個別のZipフィールドとともにすべてのフィールドを選択します。

SELECT * FROM student GROUP BY Zip;
36

試す

 SELECT DISTINCT(Zip),id,name FROM student;

OR

  SELECT * FROM student GROUP BY Zip;
6
diEcho

MySQLでは、次の方法で回避できます。

SELECT *
FROM student
GROUP BY Zip 

私は選択します:

SELECT * 
FROM student t
  JOIN 
    ( SELECT MIN(id) AS minid
      FROM student
      GROUP BY Zip
    ) AS grp
    ON grp.minid = t.id
3
ypercubeᵀᴹ

おそらく他の列は興味があるので...

 SELECT y.*
 FROM yourTable y,
 (SELECT MIN(y2.id)
  FROM yourTable y2
  GROUP BY y2.Zip) ilv
 WHERE ilv.id=y.id;

(または max-concatトリック を使用できます)

更新

Oracleはリンクされたページから最大連結トリックを削除しました-しかし 説明 他の場所 on the internet

2
symcbean

以下のように使用しても問題ありませんか?

select distinct Zip,name,id from student;
0
sushil bharwani

使ってみる

Select Distinct(Zip),id,name group by Zip;
0
Deepesh