ROW_NUMBER()
を使用する 1 つの方法を次に示します。
SELECT t.name, t.address, t.date, t.note FROM ( SELECT a.name, a.address, n.date, n.note, ROW_NUMBER() OVER (PARTITION BY a.name ORDER BY n.date DESC) rn FROM a LEFT JOIN n ON a.id = n.id ) t WHERE t.rn = 1
プレ>別の方法として、相関サブクエリを使用して最大日付を取得することもできます。
SELECT a.name, a.address, n.date, n.note FROM a LEFT JOIN n ON a.id = n.id WHERE n.date = (SELECT MAX(nn.date) FROM n AS nn WHERE a.id = nn.id)
プレ>