• ベストアンサー

日付が重複したものは一つしか表示しないquery

int型のidが入ったカラムAとdatetime型の日付が入ったカラムBを持ったテーブルから同じ日のidの重複をなくしたBで新しい順位ソートされたものをSELECTするクエリが分かりません。 A|B 1|2010-12-11 10:00:00 2|2010-12-05 10:00:00 1|2010-12-05 10:00:00 ⇒日付が重複しないので表示する 2|2010-12-05 10:00:00 ⇒二番目の項目と重複するので表示しない 4|2010-12-03 10:00:00 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

group by 句を使えばよいのでは? SELECT A,B FROM hoge GROUP BY A,B では駄目ですか?

keeeeeeeen
質問者

お礼

回答ありがとうございます。 それだと、 1|2010-12-05 10:00:00 ⇒日付が重複しないので表示する が表示されないのではないでしょうか?

その他の回答 (3)

回答No.4

ということは、あなたが提示している条件と、実際の条件が違うということです。 私のところでは、提示されたデータのテーブルを作成してテストしても、4行のデータが返ってきます。

回答No.3

やってみました? distinctは、列ごとではなく、すべての列が同じデータを排除するはずですが。 以下のURLの開設を参照してみてください。 SQL入門その10 - SELECT DISTINCT文による重複データを取除く http://www.syboos.jp/database/doc/20080216155839652.html

keeeeeeeen
質問者

補足

こちら補足ですが、auto_incrementなどのカラムもあります。 なので列だけで見ると全てユニークになっています。 結果、やはりダメでした。

回答No.2

A,Bが全く同じものを排除するのであれば、 select distinct A,B のようにすればいいんじゃないでしょうか。

keeeeeeeen
質問者

お礼

回答ありがとうございます。 それもやはり 1|2010-12-05 10:00:00 ⇒日付が重複しないので表示する が表示されないのではないでしょうか?