Dit artikel maakt deel uit van een reeks artikelen over Access SQL. In dit artikel wordt besproken hoe u een FROM-component opstelt en worden met voorbeelden de verschillende technieken toegelicht die u in een FROM-component kunt gebruiken.
In een SELECT-instructie geeft u gegevensbronnen in de FROM-component op. De FROM-component mag ook een JOIN-bewerking bevatten. U gebruikt een dergelijke bewerking om gegevens van twee gegevensbronnen bij elkaar te zoeken en te combineren, zoals twee tabellen of een tabel en een query.
Voor een overzicht van Access SQL raadpleegt u het artikel Access SQL: basisbegrippen, woordenlijst en syntaxis.
In dit artikel
Gegevensbronnen opgeven
In een SELECT-instructie worden met de FROM-component de tabellen of query's opgegeven waarin de gegevens staan die de SELECT-component zal gebruiken.
Stel dat u het telefoonnummer van een bepaalde klant wilt weten. Als we ervan uitgaan dat de tabel met het veld waarin deze gegevens zijn opgeslagen, de naam tblCustomer heeft, ziet de FROM-component er zo uit:
FROM tblCustomer
U kunt de naam tussen vierkante haakjes plaatsen. Als de naam geen spaties of speciale tekens bevat, zoals leestekens, is het gebruik van vierkante haakjes niet verplicht. Komen er wel spaties of speciale tekens in de naam voor, dan moet u de vierkante haakjes wel gebruiken.
Tip: Een naam die spaties bevat, is gemakkelijker te lezen en kan u tijd besparen wanneer u formulieren en rapporten ontwerpt, maar u kunt uiteindelijk meer typen wanneer u SQL-instructies schrijft. Houd rekening met dit feit wanneer u objecten in uw Access-database een naam geeft.
Vervangende namen voor gegevensbronnen gebruiken
Als u met een andere naam naar een tabel in een SELECT-instructie wilt verwijzen, gebruikt u een tabelalias in uw FROM-component. Een tabelalias is een naam die u aan een gegevensbron in een query toewijst wanneer u een expressie als een gegevensbron gebruikt, of om de SQL-instructie gemakkelijker te typen en leesbaarder te maken. Dit kan vooral nuttig zijn wanneer de naam van de gegevensbron lang of lastig te typen is, vooral wanneer er meerdere velden met dezelfde naam uit verschillende tabellen zijn.
Als u bijvoorbeeld gegevens uit twee velden wilt selecteren, beide met de naam ID, één uit de tabel tblCustomer en de andere uit de tabel tblOrder, ziet uw SELECT-component er ongeveer als volgt uit:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
De query is gemakkelijker te typen als u tabelaliassen in uw FROM-component gebruikt. Uw FROM-component met tabelaliassen ziet er ongeveer als volgt uit:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
U kunt deze tabelaliassen daarna als volgt in de SELECT-component gebruiken:
SELECT [C].[ID], [O].[ID]
Opmerking: Wanneer u een tabelalias gebruikt, kunt u naar de tabel in uw SQL-instructie verwijzen door de alias of de volledige naam van de tabel te gebruiken.
Verwante gegevens samenvoegen
Wanneer u paren records uit twee gegevensbronnen wilt combineren tot enkele records in een queryresultaat, kunt u een join of samenvoeging uitvoeren. Een join is een SQL-bewerking waarin wordt opgegeven hoe twee gegevensbronnen verwant zijn en of gegevens uit één bron moeten worden opgenomen als er geen overeenkomende gegevens in de andere bron voorkomen.
Als u de informatie van twee gegevensbronnen wilt combineren, voert u een join uit op het veld dat in beide bronnen voorkomt. Wanneer de waarden in dit veld overeenkomen, worden de gegevens van de records in de resultaten gecombineerd.
U kunt een join niet alleen gebruiken om gegevens te combineren, maar ook om op te geven of records uit de tabellen moeten worden opgenomen als er geen bijbehorende record in de verwante tabel voorkomt.
Stel dat u gegevens uit twee tabellen in een query wilt gebruiken: tblCustomer en tblOrder. De twee tabellen hebben beide het veld CustomerID waarmee een klant wordt aangeduid. Elke record in de tabel tblCustomer heeft misschien een of meer bijbehorende records in de tabel tblOrder, en de bijbehorende waarden kunnen worden bepaald door waarden in het veld CustomerID.
Als u de tabellen wilt samenvoegen zodat de query de records van de tabellen combineert, waarbij records niet worden opgenomen als er geen bijbehorende record in de andere tabel voorkomt, ziet uw FROM-component er ongeveer als volgt uit (regeleinde ingevoegd voor leesbaarheid):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
In Access komen joins voor in de FROM-component van een SELECT-instructie. Er zijn twee soorten joins: inner joins en outer joins. In de volgende secties worden deze twee soorten joins besproken.
Inner joins
Inner joins komen het meeste voor. Wanneer er een query met een inner join wordt uitgevoerd, worden alleen de records in de queryresultaten opgenomen waarvoor in beide samengevoegde tabellen een waarde bestaat.
Een inner join heeft de volgende syntaxis (regeleinde toegevoegd voor leesbaarheid):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
In de volgende tabel worden de verschillende delen van een INNER JOIN-bewerking beschreven.
Onderdeel |
Beschrijving |
tabel1, tabel2 |
De namen van de tabellen waaruit records worden gecombineerd. |
field1, field2 |
De namen van de velden die worden samengevoegd. Niet-numerieke velden moeten hetzelfde gegevenstype hebben en dezelfde soort gegevens bevatten, maar de naam ervan hoeft niet hetzelfde te zijn. |
compopr |
Een relationele vergelijkingsoperator: "=," "<," ">," "<=," ">=," of "<>." |
Outer joins
Outer joins lijken op inner joins omdat ze bepalen hoe informatie van twee bronnen moet worden gecombineerd in een query. Outer joins verschillen van inner joins omdat ze ook opgeven of er gegevens moeten worden opgenomen als er geen gedeelde waarde bestaat. Outer joins zijn directioneel: u kunt opgeven of alle records van de eerste gegevensbron die in de join is opgegeven, moeten worden opgenomen (een linker-join), of dat alle records uit de tweede gegevensbron in de join moeten worden opgenomen (een rechter-join).
Een outer join heeft de volgende syntaxis:
FROM tabel1 [ LEFT | RIGHT ] JOIN tabel2
ON tabel1.veld1vergelijkopr tabel2.veld2In de volgende tabel worden de verschillende delen van de bewerkingen LEFT JOIN en RIGHT JOIN beschreven.
Onderdeel |
Beschrijving |
tabel1, tabel2 |
De namen van de tabellen waaruit records worden gecombineerd. |
field1, field2 |
De namen van de velden die worden samengevoegd. De velden moeten hetzelfde gegevenstype hebben en hetzelfde soort gegevens bevatten, maar de naam ervan hoeft niet hetzelfde te zijn. |
vergelijkopr |
Een relationele vergelijkingsoperator: "=," "<," ">," "<=," ">=," of "<>." |
Zie het artikel Tabellen en query's koppelen voor meer informatie over joins.