• ベストアンサー

SQL文の書き方

次のような列の2つテーブルがあります ID,メッセージ,書いた日 ID,名前 一つ目のテーブルに メッセージを追加していき IDの違う最新のメッセージだけ取り出したいのですが 考えても分からなくて… SELECT ID,MAX(書いた日) FROM 一つ目のテーブル GROUP BY ID の時のIDそれぞれのメッセージが取り出せればいいのですが 最終的には IDの部分は別テーブルにある IDと一致する名前に置き換えて取り出したいと思っています よろしくお願いします データベースはPostgreSQLを使っています

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

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

PostgreSQLは使用したことがないのですが、PostgreSQL も副問い合わせは使用できますよね? T1 : ID,メッセージ,書いた日 T2 : ID,名前 とすると SELECT   T1.ID,   T1.書いた日,   T1.メッセージ,   T2.名前 FROM   (SELECT     ID,     MAX(書いた日) AS 書いた日   FROM T1     GROUP BY ID   ) S,   T1,   T2 WHERE   T1.ID = S.ID   AND T1.書いた日 = S.書いた日   AND S.ID = T2.ID; のような感じでできるんじゃないかと思います。

longhorn
質問者

お礼

回答ありがとうございます 返事がおくれてすみません なるほど これならうまくいきそうです 勉強になります ありがとうございました

関連するQ&A