Combină înregistrări din tabelul sursă atunci când sunt utilizate în orice clauză FROM.
Sintaxă
FROM tabel1 [ LEFT | RIGHT ] JOIN tabel2
ON tabel1.câmp1operatorcomparație tabel2.câmp2Operațiunile LEFT JOIN și RIGHT JOIN au următoarele componente:
Parte |
Descriere |
tabel1, tabel2 |
Numele tabelelor din care se combină înregistrările. |
câmp1, câmp2 |
Numele câmpurilor care se unesc. Câmpurile trebuie să fie de același tip de date și să conțină aceleași tipuri de date, dar nu trebuie neapărat să aibă același nume. |
operatorcomparație |
Orice operator de comparație relativă: "=," "<," ">," "<=," ">=," sau "<>." |
Observații
Utilizați o operațiune LEFT JOIN pentru a crea o unire externă la stânga. Unirile externe la stânga includ toate înregistrările din primul dintre cele două tabele (stânga), chiar dacă nu există valori corespondente pentru înregistrările din al doilea tabel (dreapta).
Utilizați o operațiune RIGHT JOIN pentru a crea o unire externă la dreapta. Unirile externe la dreapta includ toate înregistrările din cel de-al doilea tabel (dreapta), chiar dacă nu există valori corespondente pentru înregistrările din primul tabel (stânga).
De exemplu, puteți utiliza LEFT JOIN cu tabelele Departamente (stânga) și Angajați (dreapta) pentru a selecta toate departamentele, inclusiv pe cele cărora nu li s-au atribuit angajați. Pentru a selecta toți angajații, inclusiv pe cei care cărora nu li s-a atribuit un departament, utilizați RIGHT JOIN.
Următorul exemplu arată cum puteți uni tabelele Categories (Categorii) și Products (Produse) după câmpul CategoryID (IDCategorie). Interogarea generează o listă cu toate categoriile, inclusiv cu cele care nu conțin produse:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
În acest exemplu, CategoryID este câmpul unit, dar acesta nu este inclus în rezultatele interogării, deoarece nu este inclus în instrucțiunea SELECT. Pentru a include câmpul unit, introduceți numele câmpului în instrucțiunea SELECT, în acest caz, Categories.CategoryID.
Pentru a crea o interogare care include doar înregistrările în care datele din câmpurile unite sunt aceleași, utilizați o operațiune INNER JOIN.
-
O operațiune LEFT JOIN sau RIGHT JOIN poate fi imbricată într-o operațiune INNER JOIN, dar o operațiune INNER JOIN nu poate fi imbricată într-o operațiune LEFT JOIN sau RIGHT JOIN. Vedeți discuția despre imbricare din subiectul INNER JOIN pentru a afla cum să imbricați unirile în alte uniri.
-
Puteți lega mai multe clauze ON. Vedeți discuția despre legarea clauzelor din subiectul INNER JOIN, pentru a vedea cum să faceți acest lucru.
Dacă încercați să uniți câmpuri care conțin date Memo sau Obiect OLE, se produce o eroare.