Apvieno ierakstus no divām tabulām, ja vien ir saskaņotas vērtības kopējā laukā.
Sintakse
FROM tabula1 INNER JOIN tabula2 ON tabula1.lauks1salīdzināšanas_operators tabula2.lauks2
Operācijai INNER JOIN ir šādi elementi:
Daļa |
Apraksts |
tabula1, tabula2 |
To tabulu nosaukumi, kuru ieraksti tiek apvienoti. |
1.lauks, 2.lauks |
Savienoto lauku nosaukumi. Ja tie nav skaitliski, laukiem jābūt ar vienādu datu tips un jāsatur viena veida dati, taču nav jābūt ar vienu nosaukumu. |
salīdzināšanas_operators |
Jebkurš no relāciju salīdzināšanas operatoriem: \ldblquote =,\rdblquote \ldblquote <,\rdblquote \ldblquote >,\rdblquote \ldblquote <=,\rdblquote \ldblquote >=\rdblquote vai \ldblquote <>\rdblquote . |
Piezīmes
Varat izmantot operāciju INNER JOIN jebkurā klauzulā FROM. Šis ir izplatītākais savienojumu tips. Iekšējie savienojumi apvieno ierakstus no divām tabulām, ja vien ir saskaņotas vērtības abām tabulām kopējā laukā.
Varat izmantot INNER JOIN kopā ar tabulām Nodaļas un Darbinieki, lai atlasītu visus darbiniekus katrā nodaļā. Turpretī, lai atlasītu visas nodaļas (pat tad, ja dažām nav piešķirti darbinieki) vai visus darbiniekus (pat tad, ja daži nav piešķirti nodaļai), varat izmantot operāciju LEFT JOIN vai RIGHT JOIN, lai izveidotu ārējā apvienošana.
Mēģinot apvienot laukus, kas satur Memo vai OLE objekta datus, rodas kļūda.
Varat apvienot jebkurus divus skaitliskus laukus ar līdzīgiem tipiem. Piemēram, varat apvienot AutoNumber un Long laukus, jo tiem ir līdzīgi tipi. Taču nevarat apvienot Single un Double tipu laukus.
Tālāk esošajā piemērā ir parādīts, kā varat savienot tabulas Kategorijas un Produkti laukā CategoryID.
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Iepriekšējā piemērā CategoryID ir savienotais lauks, bet tas nav iekļauts vaicājuma rezultātos, jo tas nav iekļauts priekšrakstā SELECT. Lai iekļautu savienoto lauku, iekļaujiet lauka nosaukumu priekšrakstā SELECT — šajā gadījumā Categories.CategoryID.
Varat arī saistīt vairākas klauzulas ON priekšrakstā JOIN, izmantojot šādu sintaksi:
SELECT lauki
FROM tabula1 INNER JOIN tabula2 ON tabula1.lauks1salīdzināšanas_operatorstabula2.lauks1 AND ON tabula1.lauks2salīdzināšanas_operatorstabula2.lauks2) OR ON tabula1.lauks3salīdzināšanas_operatorstabula2.lauks3)];Varat arī ligzdot priekšrakstus JOIN, izmantojot šādu sintaksi:
SELECT lauki
FROM tabula1 INNER JOIN (tabula2 INNER JOIN [( ]tabula3 [INNER JOIN [( ]tabulax [INNER JOIN ...)] ON tabula3.lauks3salīdzināšanas_operatorstabulax.lauksx)] ON tabula2.lauks2salīdzināšanas_operatorstabula3.lauks3) ON tabula1.lauks1salīdzināšanas_operatorstabula2.lauks2;LEFT JOIN vai RIGHT JOIN var ligzdot INNER JOIN, bet INNER JOIN nevar ligzdot LEFT JOIN vai RIGHT JOIN.