Kombinerer kildetabellposter når de brukes i en hvilken som helst FROM-setning.
Syntaks
FROM table1 [ LEFT | RIGHT ] JOIN-tabell2
ON table1.field1compopr table2.field2
LEFT JOIN- og RIGHT JOIN-operasjonene har følgende deler:
| Del | Beskrivelse |
|---|---|
| tabell1, tabell2 | Navnene på tabellene som postene kombineres fra. |
| felt1, felt2 | Navnene på de koblede feltene. Feltene må være av samme datatype og inneholde samme type data, men de trenger ikke ha samme navn. |
| smlopr | Enhver relasjonssammenligningsoperator: "=," "<," ">," "<=," ">=" eller "<>." |
Merknader
Bruk en LEFT JOIN-operasjon til å opprette en venstre ytre sammenføyning. Venstre ytre koblinger inkluderer alle postene fra den første (venstre) av to tabeller, selv om det ikke er noen samsvarende verdier for postene i den andre (høyre) tabellen.
Bruk en RIGHT JOIN-operasjon for å opprette en høyre ytre sammenføyning. Høyre ytre koblinger inkluderer alle postene fra den andre (høyre) av to tabeller, selv om det ikke er noen samsvarende verdier for postene i den første (venstre) tabellen.
Du kan for eksempel bruke LEFT JOIN med tabellene Avdelinger (venstre) og Ansatte (høyre) for å velge alle avdelinger, inkludert de som ikke har noen ansatte tilordnet. Hvis du vil velge alle ansatte, inkludert de som ikke er tilordnet til en avdeling, bruker du RIGHT JOIN.
Følgende eksempel viser hvordan du kan koble tabellene Kategorier og Produkter på CategoryID-feltet. Spørringen produserer en liste over alle kategorier, inkludert de som ikke inneholder noen produkter:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
I dette eksemplet er CategoryID det koblede feltet, men det er ikke inkludert i spørringsresultatet fordi det ikke er inkludert i SELECT-uttrykket. Hvis du vil inkludere det sammenføyde feltet, skriver du inn feltnavnet i SELECT-setningen – i dette tilfellet. Categories.CategoryID
Hvis du vil opprette en spørring som inkluderer bare postene der dataene i de koblede feltene er de samme, kan du bruke en INNER JOIN-operasjon.
- En LEFT JOIN eller en RIGHT JOIN kan nestes i en INNER JOIN, men en INNER JOIN kan ikke nestes i en LEFT JOIN eller en RIGHT JOIN. Se diskusjonen om nesting i INNER JOIN-emnet for å se hvordan du nester koblinger inni andre koblinger.
- Du kan koble flere ON-setninger. Se diskusjonen om setningskobling i INNER JOIN-emnet for å se hvordan dette gjøres.
Hvis du prøver å sammenføye felt som inneholder Notat- eller OLE-objektdata, oppstår det en feil.