Tabellen en query's koppelen

Opmerking: We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

Als u meerdere gegevensbronnen in een Access-query opneemt, kunt u joins gebruiken om de records die u zien wilt, op basis van hoe de gegevensbronnen zijn gerelateerd aan elkaar te beperken. U ook gebruiken joins combineren van records uit beide gegevensbronnen, zodat elk paar records uit de bronnen één record in de queryresultaten wordt.

In dit artikel wordt beschreven hoe de verschillende typen joins en ziet u hoe u deze gebruiken in een query. Een join wordt standaard automatisch gemaakt als er al een relatie tussen twee gegevensbronnen die u in een query gebruiken. Een join wordt ook gemaakt als er velden zijn die duidelijk met elkaar overeenkomen. U kunt een automatisch gemaakte join verwijderen. Dit artikel bevat algemene informatie over relaties tussen tabellen, inclusief hoe u een account maakt.

Opmerking: U kunt deelnemen aan query's op dezelfde manier die u deelnemen aan tabellen en kunt ook deelnemen aan beide.

In dit artikel

Overzicht

Typen joins

Rijen weergeven met een gemeenschappelijke waarde in beide gekoppelde tabellen

Alle rijen uit één tabel weergeven overeenkomende rijen uit een andere tabel

Alle rijen uit beide tabellen weergeven en vervolgens deelnemen waar een gemeenschappelijke waarde voorkomt

Cross joins

Deelnemen aan tabellen op basis van een ongelijkheid van veldwaarden

Een join verwijderen

Overzicht

Een database is een verzameling tabellen met gegevens die logische relaties met elkaar. Relaties kunt u verbinding maken met tabellen door velden die ze elkaar gemeen hebben. Een tabel kan deel uitmaken van een willekeurig aantal relaties, maar elke relatie heeft altijd precies twee tabellen. Een relatie wordt in een query vertegenwoordigd door een join.

Wanneer u tabellen aan een query toevoegen, maakt Access joins die zijn gebaseerd op relaties die tussen de tabellen zijn gedefinieerd. U kunt handmatig joins maken in query's, zelfs als deze niet weergeven relaties die al zijn gedefinieerd. Als u andere query's (in plaats van of naast tabellen) als gegevensbron voor een query gebruikt, kunt u joins tussen de bron-query's, en ook tussen deze query's en tabellen die u als gegevensbron gebruikt.

Joins werken op dezelfde manier naar query's met criteria in die zin regels die de gegevens voldoen moeten om te worden opgenomen in de querybewerkingen. In tegenstelling tot criteria opgeven joins ook dat elk paar rijen die voldoet aan de worden gecombineerd in de recordset om één rij.

Er zijn vier eenvoudige typen joins: inner joins, outer joins cross joins en ongelijke joins. In dit artikel bevat informatie over elk type join aangegeven die u gebruiken kunt, waarom u elk type en hoe u het maken van joins gebruiken.

Joins zijn in query's wat relaties zijn in tabellen: een aanduiding van hoe de gegevens in twee bronnen kunnen worden gecombineerd op basis van gegevenswaarden ze elkaar gemeen hebben. Hier volgt een voorbeeld van een join in de queryontwerpweergave, met eigenschappen openen van de join in een dialoogvenster:

Het venster Joineigenschappen.

Deze regel tussen de tabellen staat de join definieert. Dubbelklik op een join openen de in het dialoogvenster Joineigenschappen (afgebeeld) en controleren of wijzigen de join definieert.

Joins kunnen soms een bepaalde richting. In dit gedeelte van het dialoogvenster ziet u welke tabel is die in de join en welke velden worden gebruikt voor het samenvoegen van de tabellen.

Dit gebied wordt het type join aangegeven: optie 1 is een inner join, 2 is een left outer join en 3 is een right outer join.

Velden uit beide tabellen kunnen worden gebruikt en gegevens die betrekking op een bepaalde taak heeft uit elk wordt weergegeven. In een inner join is het geen gegevens opgenomen. In een outer join, worden ook niet-gerelateerde records uit één tabel is opgenomen in de queryresultaten.

Naar boven

Typen joins

Er zijn vier eenvoudige typen joins: inner joins, outer joins cross joins en ongelijke joins. Cross deelneemt aan de vergadering en ongelijke joins worden geavanceerde join-typen worden zelden gebruikt en u moet weten over deze heeft een volledig begrip van de werking van joins.

Inner joins: alleen gerelateerde gegevens uit beide tabellen worden gecombineerd

Een inner join is een waarin Access alleen gegevens uit een tabel bevat als er bijbehorende gegevens in de gerelateerde tabel en vice versa. De meeste gevallen, gebruikt u inner joins. Wanneer u een join maken en welk type join is niet opgeeft, wordt ervan uitgegaan dat u wilt dat een inner join. Inner joins zijn handig omdat ze u combineren van gegevens uit twee bronnen op basis van gedeelde waarden kunnen – zodat u alleen gegevens zien wanneer er sprake is van een volledige afbeelding.

Outer joins: alle gerelateerde gegevens worden correct gecombineerd, plus de resterende records uit één tabel

Een outer join een inner join lijkt, maar de resterende rijen van een van de tabellen worden opgeteld. Outer joins worden directionele: een left outer join bevat alle records in de linkertabel – de eerste tabel in de join- en een right outer join bevat alle records in de juiste tabel-de tweede tabel in de join definieert.

Volledige outer joins: alle gegevens worden waar mogelijk gecombineerd

In sommige systemen bevatten een outer join alle rijen uit beide tabellen met rijen gecombineerd wanneer ze overeenkomen. Heet dit een volledige outer join en ze niet expliciet ondersteund door Access. U kunt echter een cross join en criteria aan hetzelfde effect bereiken gebruiken.

Cross joins: alle gegevens, worden alle mogelijke manieren gecombineerd

De meeste gevallen, is een cross join een effect kant van twee tabellen toevoegen aan een query en klik vervolgens worden niet deelnemen aan deze. Access interpreteert dit verstaan dat u wilt zien van elke record van de ene tabel gecombineerd met elke record uit de andere tabel – elke mogelijke combinatie van records. Omdat u geen gegevens kunnen worden gecombineerd, levert dit type join zelden nuttig resultaten. Maar er een paar zaken zijn wanneer een cross join is alleen wat u nodig hebt.

Ongelijke joins: lijken op een gewone join, maar gebruiken een andere vergelijking om rijen te combineren

Ongelijke joins een operator dan het gelijkteken (=) gebruiken om te vergelijken van waarden en bepalen of en hoe de gegevens wilt combineren. Ongelijke joins niet expliciet ondersteund, maar u kunt een cross join en criteria hetzelfde effect bereiken.

Rijen weergeven met een gemeenschappelijke waarde in beide gekoppelde tabellen

Als u alleen de rijen met overeenkomende waarden in het gekoppelde veld weergeven wilt, gebruikt u een inner join. Inner joins worden automatisch gemaakt in Access.

Inner joins komen het meeste voor. Ze zien een query die rijen uit een van de gekoppelde tabellen overeenkomen met rijen in een andere tabel, op basis van de gegevens in de gekoppelde velden. Wanneer een query met een inner join wordt uitgevoerd, wordt alleen de rijen waar een gemeenschappelijke waarde in beide gekoppelde tabellen voorkomt worden opgenomen in de querybewerkingen.

Hoe gebruik ik een inner join?

De meeste gevallen, hoeft u te iets doen om het gebruik van een inner join. Als de tabellen die u aan een query al toevoegt relaties hebt, wordt automatisch een inner join tussen twee gerelateerde tabellen, wanneer u de tabellen toevoegen. Als referentiële integriteit wordt afgedwongen, ziet u boven de joinlijn ook een '1' bij de tabel aan de 'één'-kant van een een-op-veel-relatie en een oneindigheidsteken () bij de tabel aan de 'veel'-kant.

Zelfs als u geen relaties gedefinieerd, Access automatisch inner joins gemaakt als u twee tabellen aan een query toevoegen en deze tabellen een veld met dezelfde of compatibel gegevenstype en een van de joinvelden is een primaire sleutel. De 'een' en 'veel'-symbolen worden niet in dit geval weergegeven omdat referentiële integriteit niet wordt afgedwongen.

Als u query's aan uw query toevoegen en geen relaties tussen deze query's hebt gemaakt, zal Access niet automatisch inner joins tussen deze query's of query's en tabellen maken. In het algemeen wordt moet u ze zelf maken. U kunt een inner join maken door een veld uit een gegevensbron slepen naar een veld in een andere gegevensbron. Er wordt een lijn tussen de twee velden weergegeven om aan te geven dat er een join is gemaakt.

SQL-syntaxis voor een inner join

Inner joins worden in SQL opgegeven in de FROM-component, zoals hieronder wordt weergegeven:

FROM tabel1 INNER JOIN tabel2 ON tabel1.veld1 tabel2 vergelijken.veld2

De INNER JOIN-bewerking bevat de volgende onderdelen:

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.

vergelijken

Een relationele vergelijkingsoperator: "=," "<," ">," "<=," ">=," of "<>."

Zie voor meer informatie over de syntaxis van inner join, het onderwerp INNER JOIN-bewerking.

Naar boven

Alle rijen uit één tabel weergeven overeenkomende rijen uit een andere tabel

Outer joins zien een query die Hoewel enkele van de rijen aan beide zijden van de join die precies overeenkomen, neemt u de query moet alle rijen uit één tabel en ook rijen uit de andere tabel die delen een gemeenschappelijke waarde op beide zijden van de join definieert.

Outer joins kunnen kunnen left outer joins of rechts outer joins. In een left outer join bevat de query alle rijen uit de eerste tabel in de SQL-instructie FROM-component en alleen de rijen uit de andere tabel waar het gekoppelde veld overeenkomende waarden in beide tabellen bevat. In een right outer join bevat de query alle rijen uit de tweede tabel in de SQL-instructie FROM-component en alleen de rijen uit de andere tabel waar het gekoppelde veld overeenkomende waarden in beide tabellen bevat.

Opmerking: U kunt in één oogopslag zien welke tabel is de linkertabel of de juiste tabel in een bepaalde join door te dubbelklikken op de join en klik vervolgens in het dialoogvenster Joineigenschappen . U kunt ook overschakelen naar de SQL-weergave en controleer de FROM-component.

Aangezien het aantal rijen in een-kant van een outer join hebben geen overeenkomende rijen uit een andere tabel, geretourneerd sommige velden in de resultaten van de query uit die andere tabel leeg is wanneer de rijen niet overeenkomen.

Hoe gebruik ik een outer join?

U kunt een outer join maken door een bestaande inner join wijzigen. Als er geen inner join bestaat, moet u een account maakt en deze vervolgens wijzigt in een outer join.

Een inner join in een outer join wijzigen

  1. Dubbelklik in de queryontwerpweergave op de join die u wilt wijzigen.

    Het dialoogvenster Joineigenschappen wordt geopend.

  2. Opmerking in het dialoogvenster Joineigenschappen de opties die worden vermeld naast optie 2 en optie 3.

  3. Klik op de optie van uw keuze en klik vervolgens op OK.

  4. Wordt de join en ziet u een pijl die van de gegevensbron waarin alle rijen worden opgenomen met de gegevensbron waar alleen de rijen die voldoen aan de joinvoorwaarde wijst opgenomen worden.

Niet-eenduidige outer joins

Als u een query waarin een LEFT JOIN en een INNER JOIN maken, Access niet mogelijk om te bepalen welke deelnemen aan de bewerking eerst moet worden uitgevoerd. Omdat de resultaten verschillen afhankelijk van of de linker-join of de inner join eerst wordt uitgevoerd zijn, wordt een foutbericht weergegeven:

U lost deze fout, moet u de query wijzigen zodat duidelijk is welke join eerst moet worden uitgevoerd.

SQL-syntaxis voor een outer join

Outer joins worden in SQL opgegeven in de FROM-component, zoals hieronder wordt weergegeven:

FROM tabel1 [LEFT | RIGHT] JOIN tabel2
op tabel1.veld1 vergelijken tabel2.veld2

De LEFT JOIN- en RIGHT JOIN-bewerkingen bevatten de volgende onderdelen:

Onderdeel

Beschrijving

tabel1, tabel2

De namen van de tabellen waaruit records worden gecombineerd.

field1, field2

De namen van de velden die zijn gekoppeld. De velden moeten hetzelfde gegevenstype hebben en dezelfde soort gegevens bevatten, maar de naam ervan hoeft niet hetzelfde te zijn.

vergelijken

Een relationele vergelijkingsoperator: "=," "<," ">," "<=," ">=," of "<>."

Zie het onderwerp LEFT JOIN, RIGHT JOIN-bewerkingenvoor meer informatie over de syntaxis van outer joins.

Naar boven

Alle rijen uit beide tabellen weergeven en vervolgens deelnemen waar een gemeenschappelijke waarde voorkomt

Als u alle rijen uit twee tabellen weergeven en koppelen op basis van algemene waarden wilt, gebruikt u een volledige outer join. Access volledige outer joins niet expliciet ondersteund, maar u kunt hetzelfde effect bereiken met behulp van een samenvoegquery. De volgende procedure wordt uitgelegd hoe u dit doen, maar als u meer informatie over samenvoegquery's wilt, raadpleegt u de sectie Zie ook .

Een samenvoegquery gebruiken om uit te voeren van een volledige outer join:

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

  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 einde 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 voor het uitvoeren van een volledige outer join.

  6. Druk op CTRL + V om de SQL-code die u hebt gekopieerd in stap 3 te plakken.

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

  8. Verwijder de puntkomma aan het einde van de tweede FROM-component en druk op ENTER.

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

    Als bijvoorbeeld de FROM-component is:

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

    U zou de volgende WHERE-component toevoegen:

    WHERE Products.ID IS NULL

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

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

Cross joins

Cross joins verschillen van de binnenste en buitenste joins in dat ze niet expliciet worden aangegeven in Access. In een cross join, wordt elke rij van de ene tabel gecombineerd met elke rij uit een andere tabel, waardoor wat is een kruisproduct of Cartesisch product genoemd. Elk gewenst moment die een query die de tabellen die niet expliciet worden gekoppeld, heeft is een kruisproduct het resultaat. Cross joins zijn meestal onbedoeld, maar er zijn zaken waar ze handig kunnen zijn.

Waarom zou ik een cross join gebruiken?

Als u onderzoeken welke gevolgen elke mogelijke combinatie van rijen tussen twee tabellen of query's wilt, gebruikt u een cross join. Stel uw bedrijf heeft een spectaculaire jaar en bent u van plan korting naar uw klanten te geven. U kunt een query die de som van elke klant aankopen maken, een kleine tabel met verschillende mogelijke kortingspercentages maken en deze twee combineren in een andere query die een cross join uitvoert. U dit uiteindelijk met een query die wordt weergegeven van een set hypothetische kortingen voor elke klant.

Hoe gebruik ik een cross join?

Een cross join wordt gegenereerd als u tabellen of query's in uw query opnemen en niet maken ten minste één expliciete join voor elke tabel of query. Access worden gecombineerd voor elke rij uit elke tabel of query die niet expliciet is gekoppeld aan een andere tabel of query toevoegen aan elke tweede rij in de zoekresultaten. Bekijk het kortingsscenario uit de vorige alinea. Wordt ervan uitgegaan dat u 91 klanten hebt en dat u wilt bekijken vijf mogelijke kortingspercentages. Uw cross join produceert 455 rijen (het product van 91 en 5).

Als u zich voorstellen mogelijk, kunnen onbedoelde cross joins enorme aantallen rijen in uw queryresultaten maken. Bovendien worden deze resultaten zijn algemeen zinloos omdat als u niet dat is wel combineren van elke rij met elke tweede rij wilt, meestal de gecombineerde rijen die worden weergegeven in de resultaten geen zinvolle. Tot slot query's die onbedoelde cross joins gebruiken kunnen erg lang duren om uit te voeren.

Onbedoelde cross join in de ontwerpweergave van de query

1. de omcirkelde velden moeten worden gekoppeld aan elkaar.

Onbedoeld kruisproduct

1. Houd rekening met het zeer grote aantal records.

Het gecorrigeerde queryresultaat

1. Houd er rekening mee dat het aantal records veel kleiner is.

Naar boven

Deelnemen aan tabellen op basis van een ongelijkheid van veldwaarden

Joins hoeft niet te worden gebaseerd op de gelijkwaardig van de gekoppelde velden. Een join worden gebaseerd op een vergelijkingsoperator, zoals groter dan (>), kleiner dan (<), of is niet gelijk aan (<>). Joins die niet zijn gebaseerd op gelijkwaardig worden ongelijke joins genoemd.

Als u combineren van de rijen van twee gegevensbronnen op basis van veldwaarden die niet gelijk zijn wilt, gebruikt u een ongelijke join. Meestal ongelijke joins zijn gebaseerd op het groter is dan (>), kleiner dan (<), groter is dan of gelijk aan (> =), of kleiner dan of gelijk aan (< =) vergelijkingsoperatoren. Ongelijke joins die zijn gebaseerd op de doet niet gelijk (<>) operator bijna net zoveel rijen als retourneren kan een cross join en de resultaten kunnen het lastig interpreteren.

Hoe gebruik ik een ongelijke join?

Ongelijke joins worden niet ondersteund in de ontwerpweergave. Als u gebruiken wilt, moet u dit doen met behulp van de SQL-weergave. Echter, u kunt een join maken in de ontwerpweergave, overschakelen naar de SQL-weergave, zoeken de is gelijk aan (=) vergelijkingsoperator en pas deze naar de operator die u wilt gebruiken. Nadat u dit doet, kunt u alleen de query openen in de ontwerpweergave opnieuw als u eerste wijziging de vergelijkingsoperator weer gelijk is aan (=) in SQL-weergave.

Een join verwijderen

Als wordt automatisch een join die u niet wilt, of als u per ongeluk een join maken, bijvoorbeeld een join tussen twee velden met verschillende gegevenstypen, kunt u de join verwijderen.

  1. Klik in het queryontwerpraster op de join die u wilt verwijderen.

  2. Druk op DELETE.

-of-

  • Klik in het queryontwerpraster, met de rechtermuisknop op de join die u wilt verwijderen en klik vervolgens op verwijderen.

Naar boven

Zie ook

Records toevoegen aan een tabel met behulp van een toevoegquery

De resultaten van verschillende selectiequery met behulp van een samenvoegquery combineren

Query's op basis van meerdere tabellen maken

Maken, bewerken of verwijderen van een relatie

Uw Office-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-ondersteuningsagenten.

×