I più moderni server di database relazionali usano la Structured Query Language o SQL , aggiungere , aggiornare e segnalare informazioni nei database . SELECT di SQL , utilizzato per visualizzare i dati , ha una clausola opzionale chiamato INNER JOIN . Si collega due tavoli insieme temporaneamente in una singola unità . SQL consente di utilizzare INNER JOIN in due modi : implicitamente , specificando le tabelle e in modo esplicito mediante la dicitura " INNER JOIN " nella sintassi della dichiarazione. Seleziona
In SQL , l'istruzione SELECT mostra elenca sulla base dei dati in un database . Ad esempio , per visualizzare un semplice elenco di clienti ordinati per nome , è possibile utilizzare il seguente codice SQL :
SELEZIONA NUM_CLIENTE , nome , città, stato , zip_code FROM clienti ORDER BY nome ;
Inner Join
un'operazione di join collega due tabelle. La tabella dei clienti , in questo esempio , può avere un campo chiamato sales_code che si riferiscono alle corrispondenti record in una tabella separata venditore . Le istruzioni seguenti elencano le informazioni sul cliente e il nome del venditore. Il primo esempio utilizza JOIN implicitamente , il secondo , in modo esplicito :
SELEZIONA NUM_CLIENTE , nome , città, stato , zip_code , sales_name dai clienti, venditore DOVE customers.sales_code = salesperson.sales_code ORDER BY nome ;
< p > SELEZIONA NUM_CLIENTE , nome , città, stato , zip_code , sales_name FROM clienti INNER JOIN venditore ON customers.sales_code = salesperson.sales_code ORDER BY nome ;
Risultati
L' INNER JOIN e approcci join impliciti producono gli stessi risultati . Entrambi elenco degli stessi record ordinati nello stesso ordine . Quando si utilizza la sintassi INNER JOIN , questo indica esplicitamente SQL per collegare due tabelle solo sui record che hanno in comune . Con la versione implicita , SQL presuppone che si desidera un inner join e collega le tabelle come se si fosse specificato in modo esplicito.
Prestazioni
La differenza di prestazioni tra INNER JOIN e implicita join dipende dal server di database , come DB2 di IBM o di Microsoft SQL Server . Nel caso del DB2 , il join interno è circa un percent.faster . Prima che il server esegue una SELECT, organizza l'istruzione in un piano , che è un insieme di passi ottimizzati per raccogliere dati in modo efficiente . I risultati attesi per entrambi gli approcci sono gli stessi, in modo che il piano è di solito quasi la stessa . Poiché DB2 mostra una leggera differenza di velocità tra i due metodi , i piani sono probabilmente diversi, ma solo in modo minore .
Best Practice
La sintassi INNER JOIN è un più recente, l'approccio più esplicito di un'istruzione SELECT . Il Sito di SQL Server Performance consiglia il suo utilizzo nel metodo implicito più vecchio , perché è più chiaro . Il formato rende implicita la clausola WHERE eseguire doppio dovere con join di tabelle e valutare i test condizionali . Il formato esplicito mantiene le due attività separate ; INNER JOIN fa la giunzione e dove i test di dati per i valori specifici
.