Differenza tra entrata interna e entrata esterna

Anonim

Inner Join vs Outer Join

Inner join e join esterni sono due dei metodi di join SQL utilizzati nell'elaborazione delle query per i database. Essi appartengono alla famiglia di clausole di join (altre due sono Sinistra e Giusta). Tuttavia, vi è un Self Join che può essere utilizzato per situazioni specializzate. Lo scopo di Join è quello di combinare i campi utilizzando i valori comuni alle due tabelle. Questi join combinano record da più tabelle in un database. Crea i set risultanti, che possono essere salvati come un'altra tabella.

Che cosa è l'unione interna?

L'operazione di join SQL più comune è l'unione interna. Può essere considerato come il tipo di join predefinito utilizzato nelle applicazioni. Il join interno utilizza il predicato associato per combinare due tabelle. Supponendo che le due tabelle siano A e B, allora il join predicato confronterà le righe di A e B per scoprire tutte le coppie che soddisfano il predicato. I valori di colonna di tutte le righe soddisfatte delle tabelle A e B vengono combinate per creare il risultato. Può essere considerato come prima prendere il cross join (prodotto cartesiano) di tutti i record e poi restituire solo i record che soddisfano il join-predicato. Tuttavia, in realtà, il prodotto cartesiano non viene calcolato perché è molto inefficiente. Viene invece utilizzato un join di join o una combinazione di tipo di fusione.

Che cosa è il join esterno ?

A differenza di unione interna, l'unione esterna mantiene tutti i record anche se non riesce a trovare un record corrispondente. Ciò significa che il join esterno necessita di un record per trovare un record corrispondente per far apparire nel risultato. Invece, restituirà tutti i record, ma i record ineguagliati avranno valori nulli. I join esterni sono suddivisi in tre sotto categorie. Essi sono lasciati all'esterno esterno, all'esterno destro e all'unione esterna completa. Questa differenziazione si basa su quale tabella di tabella (tabella sinistra, tabella destra o entrambe le tabelle) viene mantenuta quando vengono trovati record ineguagliati. Le unioni esterne a sinistra (nota anche come semplicemente join a sinistra) conservano tutti i record della tabella sinistra. Ciò significa che anche se i record corrispondenti sono zero, allora avranno ancora record nella tabella dei risultati, ma avranno valori nulli per tutte le colonne di B. In altre parole, tutti i valori della tabella sinistra vengono restituiti con valori corrispondenti da destra tabella (o valori nulli quando non corrisponde). Se i valori di più righe dalla tabella sinistra sono abbinati a una sola riga dalla tabella destra, la riga dalla tabella di destra verrà ripetuta come richiesto. L'unione esterna destra è abbastanza simile al join esterno sinistro, ma il trattamento delle tabelle è venerato. Ciò significa che il risultato avrà tutte le righe di tabella destra almeno una volta con i valori di tabella sinistro corrispondenti (e valori nulli per i valori giusti senza pari). Unione esterna completa è più completa di entrambe le giunzioni esterne sinistro e destro. Ne risulta unendo l'effetto di applicare sia l'estremità destra che quella sinistra unita.

Qual è la differenza tra l'unione interna e l'entrata esterna?

Inner Join non tiene le righe ineguagliabili nel risultato, ma il join esterno manterrà tutti i record da almeno una tabella (a seconda di quale join esterno è stato utilizzato). Quindi il comportamento di non avere informazioni presenti sulle righe ineguagliate nella tabella dei risultati non è indispensabile, è necessario utilizzare sempre una delle join esterne (al posto del join interno). Unione interna non può produrre un risultato se non si trovano corrispondenze. Ma l'unione esterna produrrà sempre una tabella risultante, anche senza righe corrispondenti. L'unione interna restituirà sempre tabelle con valori (se restituiti). Ma i join esterni possono portare a tabelle con valori nulli.