Page 160 - Corso di PHP - Livello base
P. 160
echo "{$record['Titolo']}, scritto da {$record['Nickname']}<br />";
}
Nel ciclo corrispondente all'autore numero 3 verrebbe stampato
uno spazio bianco, perché non esisterebbe un elemento
dell'array con indice Titolo abbinato all'elemento “Nickname”
relativo all'autore 3.
Il RIGHT JOIN funziona allo stesso modo del LEFT JOIN ma
in maniera inversa:
$query = "SELECT * FROM Post RIGHT JOIN Autori ON Autori.Id = Post.IdAutore";
$risultato = mysql_query($query);
In questo caso vengono estratti tutti i record della tabella di
destra (Autori) mentre per quanto riguarda la tabella di sinistra
(Post) vengono estratti solo i record che hanno una
corrispondenza con Autori.
Vediamo un'altra informazione importante. Specifichiamo
sempre la clausola ON altrimenti, se scrivessimo una cosa del
genere:
$query = "SELECT * FROM Post JOIN Autori";
$risultato = mysql_query($query);
Otterremmo un CROSS JOIN, ovvero il prodotto cartesiano
delle due tabelle, cosa che sicuramente, almeno ai fini del
nostro blog, non ci interessa.
Possiamo poi unire anche tre o più tabelle tra loro. Per
esempio, se avessimo un'ipotetica tabella DatiAutori in cui
inserire indirizzi, numeri di telefono, immagini e quant'altro,
potremmo scrivere una cosa del genere:
160