Are you sure you want to join two tables with 5000 rows each without limiting the search to certain values? Think about it, the dbms has to compare each of the 5000 rows in the first table to each of the 5000 rows in the second table, roughly 25,000,000 comparisons!
Two other suggestions.
1) Instead of joining on the province itself (which I assume is a character field), add an integer column to one of the tables and store a numerical ID (autoincrement is the easy to generate the IDs). Then store that same id in the other table (see function mysql_insert_id). It is much faster for a dbms to match integers than character strings.
2) Make the ID column an index (or a unique index if that's appropriate) in both tables (the one with the autoincrement should have the ID as its primary key).
Those two changes should make the query very fast.