Originariamente inviato da Nedyc
SELECT comuni.id,comuni.nome,comuni.province
FROM comuni
LEFT JOIN province ON comuni.province=province.nome
WHERE province.id='2'
LIMIT 0,20

Ovviamente WHERE province.id='2' è solo una prova test, mi occuperò poi per ogni riga della tabella di sostituire il 2 con il valore del campo province
Dalla query si vede come vai a cercare il nome delle provincie nella tabella comuni. Questo non e' corretto. Nella tabella comuni devi avere l'id della provincia e non il nome, quindi il nome lo devi prelevare dalla tabella province. Altra cosa: se indichi nel where la provincia si presume che tu voglia l'elenco completo dei comuni (o limit 20) di quella data provincia, ancora... se indichi la provincia significa che gia' la conosci a priori e non servirebbe estrarla dal db.

codice:
SELECT comuni.id, comuni.nome, province.nome
FROM comuni 
INNER JOIN province ON comuni.province=province.id 
WHERE province.id='2' 
LIMIT 0,20
In sostanza: non puo' esistere un comune senza la provincia, quindi INNER JOIN e non LEFT JOIN. Nei comuni deve esserci il riferimento esterno "all'ID" delle province e non il nome della provincia. Il nome della provincia e' da prendere comunque nella tabella province.