Accesso a MS - Si unisce
Un database è una raccolta di tabelle di dati che consentono relazioni logiche tra loro. Le relazioni vengono utilizzate per connettere le tabelle in base ai campi che hanno in comune. Una tabella può far parte di un numero qualsiasi di relazioni, ma ogni relazione ha sempre esattamente due tabelle. In una query, una relazione è rappresentata da un fileJoin.
Cos'è Join
Un join specifica come combinare i record di due o più tabelle in un database. Concettualmente, un join è molto simile a una relazione di tabella. In effetti, i join servono per interrogare quali relazioni sono per le tabelle.
I seguenti sono i due tipi fondamentali di join che discuteremo in questo capitolo:
- L'unione interna
- L'unione esterna
Entrambi possono essere facilmente creati da un file queries design view.
Inner Join
Cerchiamo ora di capire Inner Join -
- Il tipo più comune di join è un inner join che è anche il tipo di join predefinito in Microsoft Access.
- Inner Join visualizzerà solo le righe o i record in cui i campi uniti di entrambe le tabelle sono uguali.
- Questo tipo di join esamina quei campi comuni e i dati contenuti all'interno. Mostra solo le partite.
Outer Join
Vediamo ora di capire che cos'è un Outer Join è -
- Un join esterno visualizza tutte le righe di una tabella e solo quelle righe o record dell'altra tabella in cui i campi uniti sono uguali.
- In altre parole, un outer join mostra tutte le righe di una tabella e solo le righe corrispondenti dell'altra tabella.
Esistono anche altri tipi di join:
Join esterno sinistro e join esterno destro
Cerchiamo ora di capire Left Outer Join e Right Outer Join -
- Puoi scegliere la tabella che visualizzerà tutte le righe.
- Puoi creare un Left Outer Join che includerà tutte le righe della prima tabella.
- Puoi creare un Right Outer Join che includerà tutte le righe della seconda tabella.
Andiamo ora al Create scheda e creare una query dal file Design View. SelezionaretblProjects e tblTasks e chiudere la finestra di dialogo Mostra tabella come nella schermata seguente.
Aggiungi il ProjectName campo da tblProjects, e TaskTitle, StartDate e DueDate a partire dal tblTasks tavolo.
Eseguiamo ora la query.
Stiamo visualizzando solo i record di alcuni progetti. Un paio di questi progetti hanno molte attività associate a quel progetto e queste informazioni sono correlate tramiteProjectID campo.
Quando creiamo questa query in Microsoft Access, Access prende questa relazione dalle relazioni che abbiamo creato.
Per impostazione predefinita, crea ciò che è noto come file Inner Join between these two fields, tra queste due tabelle, ed è così che vengono messe in relazione queste informazioni insieme da queste due tabelle.
Ci mostra solo le corrispondenze, quindi quando eseguiamo questa query, ci sono molti altri progetti elencati in tblProjects che non appaiono come parte dei nostri record impostati in questa query, e questo è dovuto al modo in cui queste due tabelle sono unite insieme, tramite quell'Inner Join, che è di nuovo, quel Join predefinito per qualsiasi query.
Tuttavia, se desideri modificare la relazione, diciamo che desideri creare un'unione esterna o, in altre parole, mostrare tutti i progetti da tblProjects, ogni singolo record che si trova in quella tabella, insieme a tutte le attività da tblTasks- Apri proprietà join; possiamo farlo semplicemente facendo doppio clic sulla linea di relazione.
Access visualizzerà il nome della tabella a sinistra e il nome della tabella a destra nella finestra di dialogo Proprietà join.
Il nome della colonna di sinistra e il nome della colonna di destra e il primo pulsante di opzione devono includere solo le righe in cui i campi di join di entrambe le tabelle sono uguali e questo è il join interno ed è ciò che viene selezionato per impostazione predefinita quando si creano relazioni, quando si crea un join nella query, ma puoi cambiarla.
Abbiamo anche altre due opzioni; possiamo includere tutti i record datblProjectse solo quei record da tblTasks dove i campi uniti sono uguali e questo è Left Outer Join.
Abbiamo una terza opzione, includere tutti i record di tblTasks e solo quei record di tblProjects in cui i campi uniti sono uguali e questo è Right Outer Join.
Questi sono i diversi tipi di join che puoi creare facilmente dalla visualizzazione struttura. Selezioniamo la seconda opzione, che è Left Outer Join, e fare clicOk.
Esaminiamo ora gli altri passaggi:
Quando guardi la linea di relazione, vedrai una piccola freccia che punta verso ProjectID in tblTasks. Quando esegui questa query, vedrai i seguenti risultati.
Come puoi vedere, ci mostra ogni singolo nome di progetto, indipendentemente dal fatto che abbia o meno un'attività correlata. Vedrai anche una serie di campi nulli. Tutto questo sarà vuoto perché non ci sono informazioni correlate intblTasks, da dove provengono questi campi. Andiamo ora alDesign View nuovamente e fare doppio clic sulla linea di relazione.
Nella finestra di dialogo Proprietà join, selezionare la terza opzione che è per Right Outer Join e fare clic Ok.
Ora guarda la nostra linea di relazione. Vedrai che ora una piccola freccia punta versoProjectID in tblProjects. Quando esegui questa query vedrai i seguenti risultati.
Auto-join
L'auto-join è un altro tipo di join. Un Self-join mette in relazione i campi corrispondenti all'interno della stessa tabella. Ad esempio, guarda la tabella del dipendente con un campo supervisore, che fa riferimento allo stesso tipo di numero memorizzato in un altro campo all'interno della stessa tabella: l'ID dipendente.
Se volessimo sapere chi è il supervisore di Kaitlin Rasmussen, dovremo prendere il numero memorizzato in quel campo supervisore e cercarlo nella stessa identica tabella in quel campo ID dipendente per sapere che Charity Hendricks è il supervisore.
Questa tabella non è la struttura ideale per un database relazionale perché non è normalizzata.
Se abbiamo una situazione in cui vogliamo creare una query che elenca solo i nomi dei dipendenti insieme ai nomi dei loro supervisori, non esiste un modo semplice per interrogarlo a meno che non creiamo un Self-join.
Per vedere un Self-join, crea una tabella con i seguenti campi e inserisci alcuni dati.
Qui vogliamo creare nuovamente una lista con il nome del dipendente e poi il nome del supervisore. Creiamo una query dalquery design view.
Ora aggiungi tblEmployees tavoli.
Chiudi questa finestra di dialogo.
Ora aggiungi il nome e il cognome dei nostri dipendenti.
Ora abbiamo bisogno di un modo per creare una relazione tra questo tavolo e se stesso. Per farlo, dobbiamo aprirethe show table dialog box e aggiungi tblEmployees ancora una volta.
Abbiamo creato un'altra copia della stessa tabella in questa visualizzazione query. Ora, dobbiamo creare l'autoadesione. Per farlo, fai clic su Supervisore intblEmployees tabella e tieni premuto il pulsante del mouse e rilascialo sopra il file EmployeeID in quella tabella copiata - tblEmployees_1. Quindi, aggiungi il nome e il cognome dalla tabella copiata.
Eseguiamo ora la tua query e vedrai i seguenti risultati.
Visualizza i nomi dei dipendenti accanto ai nomi dei loro supervisori. E questo è il modo in cui crei un Self-join in Microsoft Access.