Kombinerer kildetabellposter når de brukes i en hvilken som helst FROM-setning.
Syntaks
FROM tabell1 [ LEFT | RIGHT ] JOIN tabell2
ON tabell1.felt1smlopr tabell2.felt2LEFT 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 |
En relasjonssammenligningsoperator: "=," "<," ">," "<=," ">=," eller "<>." |
Kommentarer
Bruk en LEFT JOIN-operasjon for å opprette en venstre ytre kobling. 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 kobling. 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 koblede feltet, skriver du inn feltnavnet i SELECT-uttrykket, 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.