Try:
SELECT m.id, m.name, f.name, m.Age
FROM Members m
JOIN Family f ON m.fid = f.id
WHERE m.Age > 17
ok I want to get the last three records in members table because they haven't members under 18
Your data doesn't do that: FID 2 has no members under 18.
But try this:
SELECT m.id, m.name, f.name, m.Age FROM Members m
JOIN (SELECT Fid FROM Members GROUP BY Fid HAVING MIN(AGE) > 17) j
ON j.Fid = m.FID
JOIN Family f ON m.Fid = f.Id
To get just the last three rows, you need to exclude 18 year olds as well:
SELECT m.id, m.name, f.name, m.Age FROM Members m
JOIN (SELECT Fid FROM Members GROUP BY Fid HAVING MIN(AGE) > 18) j
ON j.Fid = m.FID
JOIN Family f ON m.Fid = f.Id