複数カラムをSELECTする際に、重複行を削除したい。
ちょっと調べると、まずDISTINCTが引っ掛かる。
ただ、この方法だと、SELECT DISTINCT id,name... FROM tbl_name;
という場合に、id,nameのすべてが重複した行ということになる。
やりたい事は、
name1,name2だけが重複している場合の重複行のマージ
※idはユニークな場合が多いですよね。
次にたどり着くのがサブクエリを使用した方法で、これが正解。
SELECT id,name FROM tbl_name WHERE id = (SELECT MIN(id) FROM tbl_name GROUP BY name);
サブクエリの問い合わせ結果が複数ある場合には、=をINに変更すればOK!