アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。

MySQL4.1にて以下のようなデータを取得したいと考えています。
1回のSQLで何とかとりたいと考えているのですが、
良いお知恵はないでしょうか?

▼Aテーブル
ID(PK)
メインメモ

▼Bテーブル
ID(PK)
日付(PK)
サブメモ

▼取得したい結果
ID(1) メインメモ 最新サブメモ
ID(2) メインメモ 最新サブメモ
ID(3) メインメモ null

・「メインメモ」と「サブメモ」は1対多の状態です。
・IDごとに1行だけメインメモと最新のサブメモを取得したい。
・サブメモがなくてもメインメモだけでも取れる。
 (Aテーブル LEFT OUTER JOIN Bテーブルの関係)

上記の条件でデータを取得したいと考えております。
よろしくお願いいたします。

A 回答 (1件)

例えばこんなかんじ


SELECT M.`ID`,M.`MEMO`,S.`MEMO`
FROM `main` AS M
LEFT JOIN (
SELECT S1.`ID`,S1.`DATE`,S2.`MEMO`
FROM (SELECT `ID`,MAX(`DATE`) AS `DATE` FROM `sub` GROUP BY `ID`) AS S1
INNER JOIN `sub` AS S2 ON
S1.ID=S2.ID AND S1.`DATE`=S2.`DATE`
) AS S
ON S.ID=M.ID

) AS S
ON S.ID=M.ID
    • good
    • 0
この回答へのお礼

ありがとうございます!
参考になりました!

お礼日時:2007/03/06 01:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!