La differenza fondamentale tra Inner Join e Natural Join è che Inner Join fornisce il risultato in base ai dati corrispondenti in base alla condizione di uguaglianza specificata nella query mentre Natural Join fornisce il risultato in base alla colonna con lo stesso nome e stesso tipo di dati presente nelle tabelle da unire.
DBMS consente di archiviare, recuperare e manipolare facilmente i dati. Memorizza i dati sotto forma di tabelle. Ogni tabella è composta da righe e colonne. Le righe rappresentano ciascuna entità mentre le colonne rappresentano gli attributi. Assumere un database Studente. Ogni riga rappresenta uno studente. Le colonne rappresentano gli attributi come id, nome, voto, età. Un DBMS è una raccolta di tabelle e ogni tabella è correlata utilizzando vincoli come chiavi esterne. A volte non è sufficiente utilizzare una sola tabella. Ci sono situazioni che richiedono l'utilizzo di più tabelle. Per combinare due tabelle, almeno una colonna dovrebbe essere comune. La combinazione di tabelle si chiama join.
Cos'è Inner Join?
Un esempio di inner join è il seguente. Di seguito è riportata la tabella degli studenti.
La tabella student_info è la seguente.
Per eseguire inner join, ci dovrebbe essere almeno una corrispondenza tra le due tabelle. Gli ID 1, 2, 3 sono comuni a entrambe le tabelle. Pertanto, è possibile eseguire inner join.
Figura 01: SQL Join
La query INNER JOIN per unire queste due tabelle è la seguente.
SELEZIONAREda studente
INNER ISCRIVITI student_info DOVE student.id=student_info.id;
L'esecuzione del comando SQL sopra riportato produrrà la seguente tabella.
Cos'è Natural Join?
Un esempio di join naturale è il seguente. Di seguito è riportata la tabella degli studenti.
La tabella student_info è la seguente.
Per eseguire un join naturale, dovrebbe esserci una colonna con lo stesso nome e lo stesso tipo di dati. La colonna id è la stessa per entrambe le tabelle. Pertanto, è possibile unire naturalmente entrambi questi tavoli.
La query NATURAL JOIN per unire queste due tabelle è la seguente.
SELECTfrom student NATURAL JOIN student_info;
L'esecuzione del comando SQL sopra riportato produrrà la seguente tabella.
Qual è la relazione tra Inner Join e Natural Join?
Natural Join è un tipo di Inner Join
Qual è la differenza tra Inner Join e Natural Join?
Inner join fornisce il risultato in base ai dati abbinati secondo la condizione di uguaglianza specificata nella query mentre il join naturale fornisce il risultato in base alla colonna con lo stesso nome e stesso tipo di dati presente nelle tabelle da unire. Inoltre, la sintassi di inner join e natural join è diversa.
Quando la tabella1 è composta da id, nome e la tabella2 è composta da id e città, il join interno darà la tabella risultante con le righe corrispondenti. Avrà id, nome, ancora id e città. D' altra parte, in natural join, darà la tabella risultante con righe corrispondenti con colonne id, name, city.
Riepilogo – Inner Join vs Natural Join
La differenza fondamentale tra inner join e natural join è che inner join fornisce il risultato in base ai dati corrispondenti in base alla condizione di uguaglianza specificata nella query SQL mentre natural join fornisce il risultato in base alla colonna con lo stesso nome e stesso tipo di dati presente nelle tabelle da unire.