Domanda

E 'un outer join utilizzato solo per l'analisi dal committente? Sto avendo difficoltà a trovare un caso d'uso per perché si vuole includere i dati in due o più tabelle che non è correlato o non "corrispondono" ai tuoi criteri di selezione.

È stato utile?

Soluzione

Un esempio di caso di utilizzo sarebbe quello di produrre un rapporto che mostra tutti i clienti ei loro acquisti. Cioè, mostrano anche i clienti che non hanno acquistato nulla. Se un normale unirvi dei clienti e degli acquisti, il rapporto avrebbe mostrato solo i clienti con almeno un acquisto.

Altri suggerimenti

Ecco una buona lista di esempi da nessun altro che Jeff Atwood -. una spiegazione visiva di SQL unisce mostra una nuova rappresentazione visiva del SQL unisce

Il caso "non corrisponde" è utile per i dati facoltativi. Qualcosa che è presente per alcune righe, ma non per gli altri.

L'outer join ha lo scopo di affrontare i casi in cui si desidera selezionare un set di record da una tabella primaria, che possono o non hanno record correlati contenute in una tabella secondaria.

Un inner join sarebbe omettere dalla lista tutti i record primari non rappresentate anche nella tabella secondaria. Qualsiasi OUTER JOIN garanzie del visiblity di tutti i record primari qualificati.

Forse avete un tavolo gli utenti e una tabella degli indirizzi ad esso correlati, dal momento che gli utenti possono scegliere di non immettere un indirizzo, o possono avere diversi (il trasporto, via, postali, ecc). Se si voleva elencare tutti gli utenti, ma anche visualizzare gli indirizzi per coloro che li hanno, che avrebbe dovuto utilizzare un join esterno per la tabella degli indirizzi.

Diciamo che ha avuto due tavoli, uno per gli utenti e una per qualcosa come le qualifiche, si vuole fare una query che ottiene tutti gli utenti con le loro qualifiche se ne hanno. In questo caso si dovrebbe utilizzare un outer join per ottenere indietro tutti gli utenti e quelli con qualifiche. Un inner join sarebbe solo dare gli utenti che hanno avuto una qualifica.

La differenza tra interno ed esterno join è principalmente che il join esterni trattenere ogni record da entrambe le tabelle unite, se il predicato di join è abbinata o meno. Quindi, un caso d'uso avrebbe bisogno di ruotare intorno sapere su "mancante roba", per esempio. clienti che non hanno effettuato acquisti, o membri che sono dispersi dati personali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top