Attenzione sono due cose MOLTO diverse
La prima prende solo elementi presenti in ENTRAMBE le tabelle
La seconda (left join) prende gli elementi della prima tabella anche se non presenti nella seconda, valorizzando eventualmente con NULL i campi della seconda tabella nel caso in cui non ci fossero dati
Mettiamo la tua situazione leggermente modificata, ovvero con un "filippo" che non ha un record corrispondente nella tabella "cognomi"
Codice PHP:
Nomi Cognomi
id | nnome id | cnome | idnome
1 | silvio 1 | berlusca | 1
2 | claudio 2 | lippi | 2
3 | giovanni 3 | agnelli | 3
4 | filippo
Questa query
SELECT nnome,cnome FROM Nomi, Cognomi WHERE Cognomi.idnome = Nomi.id
Darà questo risultato
Codice PHP:
silvio | berlusca
claudio | lippi
giovanni | agnelli
Mentre questa
SELECT nnome,cnome FROM Nomi LEFT JOIN Cognomi ON Cognomi.idnome = Nomi.id
darà questo risultato
Codice PHP:
silvio | berlusca
claudio | lippi
giovanni | agnelli
filippo | NULL