maki-o memo

制作に関する私的なメモです

自己結合っていうの?

セレクトで苦労したのでメモ。

抽出したいのは、field1に入っている日付系のデータを、 idごとで分けた、最大のデータ、且つ、今日以前のデータ。 idとfield1がpkです。

SELECT * FROM testTb AS x WHERE x.field1 = (SELECT MAX(field1) FROM testTb WHERE x.id = id AND field1 <= now() )

半ば消化不良ですが、どうやら、外のテーブル(x.testTb)のidと中のテーブル(testTb)のidを サブクエリの中で対比させることによって、id分のMAXの値を抽出できるらしい。 ループしてるイメージでしょうか?それともグループ化?

ちなみに最後の、AND field1 <= now()を外に出すと動きません。

参考サイト:http://q.hatena.ne.jp/mobile/1213899211

プロフィール

フロントエンドエンジニア

Tomokazu Makita

名古屋でフリーランスでWeb制作してます。 フロントエンドのことを主にやってます。
a-blog cmsを使用したサイト制作が得意です。
お仕事のご相談随時受付中。

雪山大すき。冬は雪山の合間に仕事します。
財布はいつも吹雪です。

エントリーリスト

タグ