MySQL4.1において下記のようなテーブルがあります


goods_id | order_date
-------------------------------
1 | 2006-05-05 00:00:00
4 | 2007-06-12 15:26:01
7 | 2007-06-12 15:26:01
3 | 2007-06-12 15:26:01
6 | 2007-06-12 15:26:01
2 | 2007-06-12 15:26:01
5 | 2007-06-12 15:26:01
1 | 2007-06-12 15:26:01

上記テーブルよりgoods_idとorder_dateの一覧を取り出したいのですが
goods_idが重複している行については日付が一番新しいものを取り出したいのですが
どのようにしたらよいでしょうか

一番参考になる回答をいただけた方に150P差し上げます
よろしくお願いします

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/06/13 14:10:39
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Sampo No.1

回答回数556ベストアンサー獲得回数104

ポイント150pt

select goods_id, max(order_date) from table group by goods_id

です。

id:jayz

ありがとうございます

少し飛躍しますがここで上記SQLで得た結果と別のテーブル、goodsテーブルとgood_idをキーにLEFT JOINするときはどうしたらよいでしょうか

2007/06/12 16:35:35
id:Sampo No.2

回答回数556ベストアンサー獲得回数104

ポイント27pt

>> goodsテーブルとgood_idをキーにLEFT JOINするときはどうしたらよいでしょうか

select

max(order_date), *

from

sales left join goods

on

sales.goods_id=goods.id

group by

goods_id

となります。売り上げテーブルが「左」だと解釈していいんですよね?

id:jayz

勘違いでした

2007/06/12 18:17:33
id:chuken_kenkou No.3

回答回数722ベストアンサー獲得回数54

ポイント26pt

group byとmax関数で得られます。

select goods_id,max(order_date) as order_date
 from t1
 group by goods_id
  • id:b-wind
    >goodsテーブルとgood_idをキーにLEFT JOINするときはどうしたらよいでしょうか
    JOIN するテーブル構成が分からないと答えにくいですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません