Ok... seems to work for me... try this:
CREATE OR REPLACE VIEW dup_checks AS
SELECT LEFT(tbr.Forename, 1) AS Forename, tbr.Surname, LEFT(tbr.Addr1, 5) AS Addr1, tbr.Postcode
FROM test_suppress
INNER JOIN tbr use index (`both`)
ON (test_suppress.surname=tbr.surname
AND test_suppress.postcode=tbr.postcode)
where LEFT(test_suppress.forename, 1)=LEFT(tbr.forename, 1) AND LEFT(test_suppress.addr1, 5)=LEFT(tbr.addr1, 5)
And
select * from test_suppress
INNER JOIN dup_checks use index (`both`)
ON (test_suppress.surname=dup_checks.surname
AND test_suppress.postcode=dup_checks.postcode)
where LEFT(test_suppress.forename, 1)=LEFT(dup_checks.forename, 1) AND LEFT(test_suppress.addr1, 5)=LEFT(dup_checks.addr1, 5)
Hope that helps.