De resultaten van verschillende query's combineren met een samenvoegquery

De resultaten van verschillende query's combineren met een samenvoegquery

Belangrijk: Dit artikel is automatisch vertaald, bekijk de disclaimer. De Engelse versie van dit artikel vindt u hier voor referentiedoeleinden.

Stel dat uw Access-database heeft twee niet-gerelateerde tabellen – 1 waarmee gegevens van de klant en een andere opgeslagen die worden opgeslagen gegevens over leveranciers: en beide tabellen een veld contactgegevens bevatten. U wilt zien van de contactgegevens uit beide tabellen in één weergave. Klik hiertoe eerst een selectiequery voor elke tabel om op te halen de contactgegevens maken en vervolgens deze resultaten combineren met een samenvoegquery maken.

Opmerking: De inhoud in dit artikel is bedoeld voor gebruik met Access-bureaubladdatabases. U kunt maken of een samenvoegquery in Access-web-databases of Access-WebApps gebruikt.

Een selectiequery meer over het maken van eenvoudige selectiequery? Zie een eenvoudige selectiequery maken.

Eerst een paar punten die belangrijk zijn als u een samenvoegquery gaat maken:

  • De selectiequery's die u combineert in een samenvoegquery, moeten evenveel uitvoervelden hebben, in dezelfde volgorde en met dezelfde of compatibele gegevenstypen. Wanneer u een samenvoegquery uitvoert, worden de gegevens uit elke set corresponderende velden in één uitvoerveld gecombineerd, zodat de queryuitvoer hetzelfde aantal velden heeft als elke SELECT-instructie.

  • Een samenvoegquery is een SQL-query en moet daarom rechtstreeks in SQL worden geschreven. Schakel over naar de SQL-weergave om SQL-query's, zoals samenvoegquery's, te schrijven.

Stap 1: De selectiequery's maken

Opmerking: Hoewel u meerdere tabellen of query's in een query kunt opnemen, wordt er in deze procedure van uitgegaan dat elke selectiequery gegevens uit slechts één tabel bevat.

  1. Klik op het tabblad Maken in de groep Query's op Queryontwerp.

  2. Dubbelklik in het dialoogvenster Tabel weergeven op de tabel met de velden die u wilt toevoegen. De tabel wordt toegevoegd aan het queryontwerpvenster.

  3. Sluit het dialoogvenster Tabel weergeven.

  4. Dubbelklik in het queryontwerpvenster op elk veld dat u wilt toevoegen.
    Zorg er bij het selecteren van de velden voor dat u evenveel velden toevoegt als aan de andere selectiequery's en dat u ze in dezelfde volgorde toevoegt. Let op dat de gegevenstypen van de velden compatibel zijn met de gegevenstypen van velden in dezelfde positie in de andere query's die u combineert. Als uw eerste selectiequery bijvoorbeeld vijf velden heeft en het eerste veld gegevens van het type Datum/tijd bevat, moet u ervoor zorgen dat alle andere selectiequery's die u combineert, ook vijf velden hebben, met als eerste een veld van het type Datum/tijd, enzovoort.

  5. Voeg desgewenst criteria aan de velden toe door de juiste expressies te typen in de rij Criteria van het veldraster.

  6. Wanneer u klaar bent met het toevoegen van velden en veldcriteria, voert u de selectiequery uit en controleert u de queryresultaten. Klik op het tabblad Ontwerpen in de groep Resultaten op itvoeren.

  7. Schakel over naar de ontwerpweergave.

  8. Sla de selectiequery op en laat deze open.

  9. Herhaal deze procedure voor elke selectiequery die u wilt combineren.

Zie Criteria toepassen op een query voor meer informatie over het gebruik van criteria in een query.

Stap 2: De selectiequery's combineren

In deze stap maakt u de samenvoegquery met behulp van SQL-instructies. (Zie de sectie SQL-syntaxis hieronder voor meer informatie.)

  1. Klik op het tabblad Maken in de groep Query's op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad Ontwerp in de groep Query op Samenvoegen.

Het venster voor queryontwerp wordt verborgen en u ziet het objecttabblad van de SQL-weergave, dat in dit stadium leeg is.

  1. Klik op de tab voor de eerste selectiequery die u in de samenvoegquery wilt combineren.

  2. Klik op het tabblad Start op Weergave > SQL-weergave.

  3. Kopieer de SQL-instructie voor de selectiequery. Klik op de tab voor de samenvoegquery waarmee u in stap 1 bent begonnen.

  4. Plak de SQL-instructie voor de selectiequery in het objecttabblad van de SQL-weergave van de samenvoegquery.

  5. Verwijder de puntkomma (;) aan het eind van de SQL-instructie voor de selectiequery.

  6. Druk op Enter om de cursor naar de volgende regel te verplaatsen en typ UNION op de nieuwe regel.

  7. Klik op de tab voor de volgende selectiequery die u in de samenvoegquery wilt combineren.

  8. Herhaal stap 5 tot en met 10 totdat u alle SQL-instructies voor de selectiequery's naar het SQL-weergavevenster van de samenvoegquery hebt gekopieerd. Laat de puntkomma aan het eind van de SQL-instructie voor de laatste selectiequery staan en typ niets achter deze puntkomma.

  9. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

De resultaten van uw samenvoegquery verschijnen in de gegevensbladweergave.

Naar boven

Tips voor het gebruik van samenvoegquery's

  • Als u wilt kunnen zien welke rijen uit welke tabel afkomstig zijn, voegt u een tekenreeks als veld aan elk van uw SELECT-instructies toe.

    Stel dat één SELECT-instructie velden uit de tabel Producten ophaalt en een andere SELECT-instructie velden uit de tabel Diensten. In dat geval voegt u de tekenreeks 'Product' als veld aan het einde van de eerste instructie toe, en 'Dienst' aan het einde van de tweede instructie. U kunt ook een veldalias (bijvoorbeeld 'type') aan de tekenreeksen toewijzen met behulp van het sleutelwoord AS, zoals in het volgende voorbeeld wordt weergegeven:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    De queryuitvoer zou het veld 'type' bevatten, waarmee wordt weergegeven uit welke tabel de rij afkomstig is: 'Producten' of 'Diensten'.

  • Elk paar SELECT-instructies wordt gecombineerd door het sleutelwoord UNION dat volgt op de eerste en voorafgaat aan de tweede instructie. Als u het sleutelwoord ALL alleen met sommige UNION-sleutelwoorden in uw query gebruikt, bevatten de resultaten dubbele rijen uit de paren SELECT-instructies die met UNION ALL zijn gecombineerd, maar niet uit de SELECT-instructies die met UNION zonder het sleutelwoord ALL zijn gecombineerd.

  • Het aantal, de gegevenstype en de volgorde van de velden in de selectiequery's moeten overeenkomen. U kunt expressies, zoals berekeningen of subquery's, gebruiken om hiervoor te zorgen.

    Als u bijvoorbeeld een veld met een jaartal van twee cijfers wilt combineren met een veld dat een jaartal van vier cijfers bevat, gebruikt u de functie Right om de laatste twee cijfers van het langere jaartal op te halen.

De resultaten van een samenvoegquery gebruiken om een nieuwe tabel te maken

Gebruik eerst de samenvoegquery als invoer voor een nieuwe selectiequery en gebruik deze selectiequery vervolgens als basis voor een tabelmaakquery, zoals wordt weergegeven in de volgende stappen:

  1. Maak de samenvoegquery en sla deze op.

  2. Klik op het tabblad Maken in de groep Query's op Queryontwerp.

  3. Klik in het dialoogvenster Tabel weergeven op de tab Query's.

  4. Dubbelklik op uw samenvoegquery en sluit het dialoogvenster Tabel weergeven.

    Opmerking: Als u een beveiligingswaarschuwing ziet op de berichtenbalk, zijn actiequery's mogelijk uitgeschakeld. Klik op de berichtenbalk op Inhoud inschakelen om actiequery's in te schakelen.

  5. Dubbelklik op het sterretje (*) in het queryontwerpraster op het objecttabblad van uw samenvoegquery als u alle velden van de samenvoegquery wilt gebruiken om een nieuwe tabel te maken.

  6. Klik op het tabblad Ontwerpen in de groep Querytype op Tabel maken.

  7. Typ in het dialoogvenster Tabel maken een naam voor de nieuwe tabel.

  8. Geef desgewenst een andere database voor de tabel op.

  9. Klik op OK.

  10. Klik op het tabblad Ontwerpen in de groep Resultaten op Uitvoeren.

Een samenvoegquery gebruiken om een volledige outer join uit te voeren

U kunt een samenvoegquery gebruiken om een volledige outer join uit te voeren. Een volledige outer join combineert rijen uit beide gekoppelde tabellen op basis van waarden in het joinveld. De resulterende rijen worden zonder beperking weergegeven.

  1. Maak een query die een linker outer join heeft op het veld dat u voor een volledige outer join wilt gebruiken.

  2. Klik op het tabblad Start in de groep Weergaven op Weergave en klik vervolgens op SQL-weergave.

  3. Druk op Ctrl+C om de SQL-code te kopiëren.

  4. Verwijder de puntkomma aan het eind van de FROM-component en druk op Enter.

  5. Typ UNION en druk op Enter.

    Opmerking: Gebruik niet het sleutelwoord ALL wanneer u een samenvoegquery gebruikt om een volledige outer join uit te voeren.

  6. Druk op Ctrl+V om de in stap 3 gekopieerde SQL-code te plakken.

  7. Wijzig LEFT JOIN in RIGHT JOIN in de code die u hebt geplakt.

  8. Verwijder de puntkomma aan het eind van de tweede FROM-component en druk op Enter.

  9. Voeg een WHERE-component toe die aangeeft dat de waarde van het joinveld NULL is in de eerste tabel in de FROM-component (de linkertabel).

    Stel dat de FROM-component als volgt is:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    In dit geval zou u de volgende WHERE-component toevoegen:

    WHERE Products.ID IS NULL

  10. Typ een puntkomma (;) aan het eind van de WHERE-component ter aanduiding van het einde van de samenvoegquery.

  11. Klik op het tabblad Ontwerp in de groep Resultaten op Uitvoeren.
    De resultaten van uw samenvoegquery verschijnen in de gegevensbladweergave.

Zie deelnemen aan tabellen en query'svoor meer informatie.

Naar boven

Vereisten en SQL-syntaxis voor een samenvoegquery

Enkele vereisten voor een samenvoegquery

  • De selectiequery's die u in een samenvoegquery combineert, moeten evenveel uitvoervelden in dezelfde volgorde en met dezelfde of compatibele gegevenstypen hebben. Wanneer u een samenvoegquery uitvoert, worden de gegevens uit elke set corresponderende velden in één uitvoerveld gecombineerd, zodat de queryuitvoer hetzelfde aantal velden heeft als elk van de SELECT-instructies.

    Opmerking: Voor een samenvoegquery zijn de gegevenstypen Numeriek en Tekst compatibel.

  • Een samenvoegquery is een SQL-query en moet daarom rechtstreeks in SQL worden geschreven. Schakel over naar de SQL-weergave om SQL-query's, zoals samenvoegquery's, te schrijven.

De SQL-syntaxis van samenvoegquery's

In een samenvoegquery bevat elke selectiequery (ook wel een SELECT-instructie genoemd) de volgende componenten:

Component

Bevat een lijst met...

SELECT

velden met de gegevens die u wilt ophalen.

FROM

tabellen met die velden.

Optionele WHERE

criteria voor die velden.

De SELECT-instructies worden gecombineerd door het trefwoord UNION te gebruiken.

De SQL-syntaxis voor een samenvoegquery is in principe als volgt:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Stel dat uw database een tabel genaamd Producten en een tabel genaamd Diensten heeft. Beide tabellen hebben velden met de naam van het product of de dienst, de prijs, waarborg- of garantiebeschikbaarheid en of het een exclusief aanbod betreft. Hoewel de tabel Producten waarborginformatie bevat en de tabel Diensten garantie-informatie, gaat het in wezen om dezelfde informatie (namelijk of een specifiek product of specifieke dienst met een belofte van kwaliteit wordt geleverd). U kunt de vier velden uit de twee tabellen combineren met een samenvoegquery zoals hieronder:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Hieronder wordt elke regel van dit syntaxisvoorbeeld toegelicht:

Syntaxis

Uitleg

Aanvullende informatie

SELECT naam, prijs, waarborg_beschikbaar, exclusief_aanbod

Eerste SELECT-component

SELECT wordt gevolgd door een lijst met aanduidingen voor de velden waaruit u gegevens wilt ophalen.

In een SELECT-component moet minstens één veld zijn gedefinieerd.

In deze SELECT-component zijn de veldaanduidingen naam, prijs, waarborg_beschikbaar en exclusief_aanbod opgegeven.

FROM Producten

Eerste FROM-component

Een FROM-component volgt op een SELECT-component en vormt samen hiermee een standaard-SELECT-instructie.

FROM wordt gevolgd door een lijst met tabelaanduidingen die aangeven in welke tabellen de velden staan die met de SELECT-component zijn geselecteerd.

In een FROM-component moet ten minste één tabel zijn gedefinieerd.

In deze FROM-component wordt de tabelaanduiding Producten gedefinieerd.

UNION ALL

Het UNION-trefwoord en het optionele ALL-trefwoord

De resultaten van de SELECT-instructie die voorafgaat aan UNION, worden samengevoegd met de resultaten van de SELECT-instructie die volgt op UNION.

Wanneer u het sleutelwoord ALL gebruikt, worden dubbele rijen niet verwijderd uit de resultaten van de samenvoegquery.

Door het ALL-trefwoord te gebruiken kan de query sneller worden uitgevoerd, omdat er niet op dubbele rijen hoeft te worden gecontroleerd.

Gebruik het ALL-trefwoord als een van de volgende voorwaarden van toepassing is:

  • U weet zeker dat de selectiequery's geen dubbele rijen zullen produceren.

  • Het maakt niet uit of uw resultaten dubbele rijen bevatten.

  • U wilt dubbele rijen zien.

SELECT naam, prijs, garantie_beschikbaar, exclusief_aanbod

Tweede SELECT-component

Enkele regels:

  • De tweede SELECT-component moet hetzelfde aantal velden hebben als de eerste SELECT-component.

  • Velden die gemeenschappelijke gegevens delen, moeten in dezelfde volgorde in de component verschijnen.

  • Velden die gemeenschappelijke gegevens delen, moeten hetzelfde of een compatibel gegevenstype hebben.

Opmerking: De veldnamen in de uitvoer van een samenvoegquery zijn afkomstig van de eerste SELECT-component. In het voorbeeld worden gegevens uit het veld waarborg_beschikbaar en uit het veld garantie_beschikbaar dus 'waarborg_beschikbaar' genoemd in de queryuitvoer.

FROM Diensten

Tweede FROM-component

Er gelden geen beperkingen voor de tabellen in de FROM-componenten van een samenvoegquery. U kunt een samenvoegquery maken die dezelfde tabellen in elke FROM-component gebruikt. U kunt verschillende aantallen tabellen in de FROM-componenten definiëren. In dit voorbeeld heeft elke FROM-component slechts één tabel.

Naar boven

Opmerking: Disclaimer voor automatische vertaling: Dit artikel is vertaald door een computersysteem zonder menselijke tussenkomst. Microsoft biedt deze automatische vertalingen aan om niet-Engels sprekende gebruikers te helpen de inhoud over producten, services en technologieën van Microsoft te raadplegen. Omdat het artikel automatisch is vertaald, bevat het mogelijk fouten in grammatica, woordenschat en syntaxis.

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×