How to query closest date and display the specific data
Try this trick

SELECT cte.landing_id, 
       cte.percentage, 
       cte.date_added, 
       cte.address
FROM (  SELECT fish_landing.landing_id, 
               percentage.percentage, 
               percentage.date_added, 
               fish_landing.address,
               (@row_number:=CASE WHEN @landing_id=fish_landing.landing_id THEN @row_number+1 ELSE 1 END) rn,
               (@landing_id:=fish_landing.landing_id)
        FROM (SELECT @landing_id:=0, @row_number:=0) vars,
                  fish_landing 
        LEFT JOIN percentage ON percentage.landing_id = fish_landing.landing_id 
        LEFT JOIN ( SELECT landing_id, MAX(date_added) AS max_date_added 
                    FROM percentage 
                    GROUP BY landing_id) AS dt 
            ON dt.landing_id = percentage.landing_id 
            AND dt.max_date_added = percentage.date_added
        ORDER BY fish_landing.landing_id ASC, percentage.date_added DESC
     ) cte
WHERE cte.rn = 1
ORDER BY cte.landing_id ASC;