質問:
sqlの質問についてお願いします。

mysql> select n, name, day, text from hoge where name = 'a';
| n | name | day | text |
+------+------+---------------------+----------+
| 1234 | a | 2006-10-06 19:40:45 | e, |
| 5678 | a | 2006-10-06 19:50:45 | e,b, |
| 9101 | a | 2006-10-06 19:50:54 | e,b,c, |

というテーブルがある時に、name=aのレコードの中で、dayが最新の日付のもののレコードを抽出する方法がありますでしょうか?
(上のテーブルでいうと
| 9101 | a | 2006-10-06 19:50:54 | e,b,c, |
になります。)

innter joinで最新日付を取得して元のテーブルと比較、抽出といった方法だと、すごく時間がかかり?レスポンスが返ってこなくなってしまいました。

where 句や order by 句などを使用して実現する事は可能なのでしょうか?

mysqlのバージョンは4.1.18です。

お手数お掛けしますが、よろしくお願い致します。
答え:
MySQLでしたら LIMIT 構文が使用できます。

SELECT n, name, day, text
FROM hoge
WHERE name = 'a'
ORDER BY day DESC ←dayの大きい順
LIMIT 0, 1 ←先頭から1件

SQL標準ではないので、他のDBには使用できませんが。。。。
補足の質問:
なるほどー。ご丁寧なご回答ありがとうございました。重ねて質問させてください。この質問・回答は役に立ちましたか?

ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.

  • ヒューズって何ですか???わかりやすく教えてくださ...
  • カテ違いかもしれませんが、ブラウザーの中で、IE・Fi...
  • youtubeの動画を動画ファイルとして保存したいのです...
  • かなりの初心者です。ネットでスタイルシートを調べる...
  • WindowsXP Homeなのですが、Cドライブの空きが、PC起...
  • PC用のメールアドレスを持っていないのでマカフィ等...