SQLメモ:特定のカラムからユニークな値のみ取り出したい
書籍検索つくったのだけど、「最近チェックされた書籍」を一覧として表示してますが別のIDで最近チェックされた商品をクリックすると、次に最近チェックされた書籍に同じ本が表示されて同じ本ばかりになってしまうw。まーあたりまえなんだけど、しょうがないと思ってたんですけど、さっき思い出した。SQLで特定のカラムの値をユニークに出来たはずだと。そしてそれができれば同じ本をダブって表示せずにユニークな状態にできるはずだと思ったわけだ。
調べてみた・・・・。DISTINCT関数だったorz
基本的すぎる。何でこんな基本的なことまで忘れているのだろう。悲しいなぁw。
楽露店書籍検索
http://books.kumacchi.com/
ちなみにおいらが持ってるSQL本は随分昔に買ったものですが、下の標準SQL[改訂第二版]っていうやつ。SQL勉強の為のバイブルと言われておりました。内容はちょっと難しめですが、必要なことは書いてあります。今はもっと良い本があるかとも思いますが一応書いておきます。
そういうわけで、「最近チェックされた書籍」に表示される本がユニークになりました。(なったはずw)
これだけだと何かわからないと思うので、一応例を挙げておきたいと思う。
年度(平成) | 名前 |
19 | 花子 |
12 | 太郎 |
19 | 太郎 |
12 | かずみ |
11 | 花子 |
上の様なデータベースのテーブルがあった場合、下の様なSELECT文で取り出すと
SELECT 年度,名前 FROM PROF_TBL
結果は
19,花子
12,太郎
19,太郎
12,かずみ
11,花子
となりますが
下の様にDISTINCT関数をつかって特定のカラムをユニークにすると
SELECT DISTINCT(年度),名前 FROM PROF_TBL
結果は
19,花子
12,太郎
11,花子
の様になります。
名前の方をDISTINCTした場合は
SELECT 年度,DISTINCT(名前) FROM PROF_TBL
結果は
19,花子
12,太郎
12,かずみ
の様になります。
二つある場合どちらが残るかはソートのオプションで決まると思います。