INNER JOIN
L'istruzione INNER JOIN dell'SQL DML per la gestione delle relazioni serve ad impostare relazioni tra due o più tabelle a seconda dei criteri relazionati impostati all'atto della creazione della struttura del database.
La sintassi base è la seguente:
SELECT * FROM
tabella_uno
INNER JOIN
tabella_due
ON
campo_tabella_uno = campo_tabella_due
In sostanza mettiamo in relazione i dati delle due tabelle in funzione dell'uguaglianza dei campi "di JOIN" (di relazione) delle due tabelle.Vediamo un esempio in cui estraiamo il nome dell'autore ed il titolo del libro, rispettivamente, dalle tabelle "autori" e "libri" in funzione della relazione tra i campi "id" della tabella "autori" e "id_autore" della tabella "libri":
SELECT
autori.nome, libri.titolo
FROM
libri
INNER JOIN
autori
ON
autori.id = libri.id_autore
Attenzione: quando si scrive una query su più tabelle va utilizzato anche il nome della tabella a cui appartiene il campo corrente, attraverso la seguente sintassi che utilizza il carattere punto (.):
nome_tabella.nome_campoLa stessa query si può scrivere anche senza l'ausilio della clausola INNER JOIN, bensì alla "vecchia maniera":
SELECT
autori.nome, libri.titolo
FROM
libri, autori
WHERE
autori.id = libri.id_autore
Questo procedimento è anche molto più semplice quando bisogna impostare relazioni tra più di due tabelle, procedimento in cui la clausola INNER JOIN è molto scomoda ed occupa parecchie risorse nel motore dell'(R)DBMS.Un esempio di relazione tra tre tabelle, dunque, può essere il seguente:
SELECT * FROM
tabella_uno, tabella_due, tabella_tre
WHERE
campo_tabella_uno = campo_tabella_due
AND
campo_tabella_due = campo_tabella_tre
');







