This will return only the cases with notes attached:
SELECT c.*,
x.*
FROM CASES c
JOIN NOTES x ON x.case_id = c.case_id
JOIN (SELECT n.case_id,
MAX(n.note_date) AS max_note_date
FROM NOTES n
GROUP BY n.case_id) y ON y.case_id = x.case_id
AND y.max_note_date = x.note_date
If you want all cases, regardless if they have a note attached:
SELECT c.*,
x.*
FROM CASES c
LEFT JOIN NOTES x ON x.case_id = c.case_id
JOIN (SELECT n.case_id,
MAX(n.note_date) AS max_note_date
FROM NOTES n
GROUP BY n.case_id) y ON y.case_id = x.case_id
AND y.max_note_date = x.note_date
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…