I have two tables that look like this:
Table: cases
id name status case_no
Table: notes
id case_id note_date notes
SELECT * FROM cases c INNER JOIN notes n ON n.case_id = c.id AND n.id = (SELECT MAX(id) FROM notes WHERE case_id = c.id)
Also it is a common practice to keep the pointer to the last note id directly in cases table and support it with trigger
cases