Dette er én av et sett med artikler om Access SQL. Denne artikkelen beskriver hvordan du skriver en FROM-setningsdel og bruker eksempler for å illustrere ulike teknikker du kan bruke i en FROM-setningsdel.
Angi datakilder i FROM-setningsdelen i en SELECT-setning . FROM-setningsdelen kan også inneholde en JOIN-operasjon. En JOIN-operasjon brukes til å samsvare og kombinere data fra to datakilder, som to tabeller, eller en tabell og en spørring.
Hvis du vil ha en oversikt over Access SQL, kan du se artikkelen Access SQL: grunnleggende begreper, vokabular og syntaks.
I denne artikkelen
Angi datakilder
FROM-setningsdelen angir tabellene eller spørringene som inneholder dataene som SELECT-setningsdelen skal bruke, i en SELECT-setning.
La oss si at du trenger telefonnummeret til en bestemt kunde. Hvis vi sier at tabellen som inneholder feltet med disse dataene, heter tblKunde, vil FROM-setningsdelen se omtrent slik ut:
FROM tblCustomer
Du kan bruke hakeparenteser rundt navnet. Hvis navnet ikke inneholder mellomrom eller spesialtegn (for eksempel skilletegn), er hakeparenteser valgfritt. Hvis navnet inneholder mellomrom eller spesialtegn, må du bruke hakeparentesene.
Tips!: Et navn som inneholder mellomrom, er lettere å lese og kan spare tid når du utformer skjemaer og rapporter, men det kan ende opp med at du må skrive mer når du skriver SQL-setninger. Du bør ta dette med i betraktningen når du gir navn til objekter i Access-databasen.
Bruke alternative navn på datakilder
Du kan bruke et annet navn på en tabell i en SELECT-setning ved hjelp av tabellalias i FROM-setningsdelen. Tabellalias er et navn du gir en datakilde i en spørring når du bruker et uttrykk som datakilde, eller for å gjøre SQL-setningen lettere å skrive inn og lese. Dette kan være spesielt nyttig hvis navnet på datakilden er langt eller vanskelig å taste, særlig når det er mange felt som har samme navn fra forskjellige tabeller.
Hvis du for eksempel vil velge data fra to felt som begge heter ID, og det ene kommer fra tabellen tblKunde og det andre fra tabellen tblOrdre, kan SELECT-setningsdelen se omtrent slik ut:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
Ved å bruke aliaser fra FROM-setningsdelen kan du gjøre spørringen lettere å taste inn. FROM-setningsdelen med tabellaliaser kan se omtrent slik ut:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Deretter kan du bruke disse tabellaliasene i SELECT-setningsdelen på følgende måte:
SELECT [C].[ID], [O].[ID]
Obs!: Når du bruker tabellalias, kan du henvise til tabellen i SQL-setningen med enten aliaset eller hele tabellnavnet.
Sammenføye relaterte data
Når du må kombinere poster fra to datakilder til enkeltposter i et spørringsresultat, kan du foreta en sammenføyning. En sammenføyning er en SQL-operasjon som angir hvordan to datakilder er relatert, og om data fra én kilde bør inkluderes hvis det ikke finnes noen samsvarende data fra den andre kilden.
Du kombinerer informasjonen fra to datakilder ved å utføre en sammenføyningsoperasjon på feltet de har til felles. Når verdiene som er lagret i dette feltet samsvarer, er dataene fra postene kombinert i resultatene.
I tillegg til å kombinere data, brukes en sammenføyning også til å angi om poster fra den ene av tabellene skal inkluderes hvis det ikke finnes noen samsvarende post i den andre tabellen.
La oss si at du vil bruke data fra to kilder i en spørring: tblKunde og tblOrdre. Begge de to tabellene har et felt, KundeID, som identifiserer en kunde. Hver post i tblKunde-tabellen har kanskje en eller flere samsvarende poster i tblOrdre-tabellen, og de samsvarende verdiene kan bestemmes av verdiene i KundeID-feltet.
Hvis du vil føye sammen tabellene slik at spørringen kombinerer poster fra tabellene, bortsett fra poster som ikke har noen samsvarende post i den andre tabellen, kan FROM-setningsdelen se omtrent slik ut (linjeskift er lagt til her for å gjøre det lettere å lese):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
Det forekommer sammenføyninger i FROM-setningsdelen av en SELECT-setning i Access. Det finnes to sammenføyningstyper: indre sammenføyninger og ytre sammenføyninger. De følgende avsnittene forklarer disse to sammenføyningstypene.
Indre sammenføyninger
Indre sammenføyninger er den vanligste sammenføyningstypen. Når en spørring med en indre sammenføyning kjøres, blir bare de postene med en felles verdi i begge de sammenføyde tabellene inkludert i spørringsresultatene.
En indre sammenføyning har følgende syntaks (linjeskift er lagt til her for å gjøre det lettere å lese):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
Den følgende tabellen beskriver de forskjellige delene i en INDRE SAMMENFØYNINGS-operasjon.
Del |
Beskrivelse |
tabell1, tabell2 |
Navnene på tabellene som postene kombineres fra. |
felt1, felt2 |
Navnene på de sammenkoblede feltene. Hvis de ikke er numeriske, må feltene være av samme datatype og inneholde samme type data, men de trenger ikke ha samme navn. |
smlopr |
En relasjonssammenligningsoperator: "=," "<," ">," "<=," ">=," eller "<>." |
Ytre sammenføyninger
Ytre sammenføyninger er lik indre sammenføyninger på den måten at de informerer en spørring om hvordan informasjon fra to kilder skal kombineres. De skiller seg fra dem ved at de også angir hvorvidt data uten noen felles verdi skal inkluderes. Ytre sammenføyninger er retningsbestemte: Du kan spesifisere om alle postene fra den første datakilden angitt i sammenføyningen (kalt venstre sammenføyning) skal inkluderes, eller om alle postene fra den andre datakilden i sammenføyningen (kalt høyre sammenføyning) skal inkluderes.
En ytre sammenføyning har følgende syntaks:
FROM tabell1 [ VENSTRE | HØYRE ] SAMMENFØYNING tabell2
PÅ tabell1.felt1smlopr tabell2.felt2Den følgende tabellen beskriver de forskjellige delene i VENSTRE SAMMENFØYNING- og HØYRE SAMMENFØYNINGS-operasjoner.
Del |
Beskrivelse |
tabell1, tabell2 |
Navnene på tabellene som postene kombineres fra. |
felt1, felt2 |
Navnene på de sammenkoblede feltene. Feltene må være av samme datatype og inneholde samme type data, men de trenger ikke ha samme navn. |
smlopr |
En relasjonssammenligningsoperator: "=," "<," ">," "<=," ">=," eller "<>." |
Hvis du vil ha mer informasjon om sammenføyninger, kan du se artikkelen Sammenføyningstabeller og spørringer.