SQL副問い合わせ
今更ながら・・・サブクエリーをはじめて使いました。
今回の目的は「テーブルの1項目が最大値(Max)を持つレコードを取得する」ということ。
正直今まではDBから取得したものをPHPやAS側で処理してソートしたりしてたんだけど、
最初から最高値を持つレコードを取得できたらソースがすっきりするんですね。
たとえば単純に「図書館の貸出記録で所蔵本情報とその本の直近の貸出記録を表示する場合」を考えると。
SELECT A.蔵書ID, X.蔵書名, A.貸出日, A.期限, A.会員ID, A.返却日 FROM 貸出記録 A, 蔵書リスト X WHERE A.貸出日=( SELECT MAX(B.貸出日) FROM 貸出記録 B WHERE B.蔵書ID = A.蔵書ID ) AND X.蔵書ID=A.蔵書ID );
こんな感じ。()の中のSELECTがサブクエリー(副問い合わせ)です。
WHEREの使い方が面白いですね。
忘れたら困るのでメモしておきます。