Apvieno avota tabulas ierakstus, tos lietojot jebkurā klauzulā FROM.
Sintakse
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2Operācijām LEFT JOIN un RIGHT JOIN ir šādas daļas:
Daļa |
Apraksts |
tabula1, tabula2 |
To tabulu nosaukumi, kuru ieraksti tiek apvienoti. |
1.lauks, 2.lauks |
To lauku nosaukumi, kas tiek savienoti. Laukos ir jābūt vienādam datu tips un tajos jābūt vienāda veida datiem, taču to nosaukumiem nav jābūt vienādiem. |
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
Izmantojiet operāciju LEFT JOIN, lai izveidotu kreisā ārējā apvienošana. Kreisie ārējie savienojumi ietver visus ierakstus no pirmās (kreisās) no abām tabulām pat tad, ja nav atbilstošu vērtību ierakstiem otrajā (labajā) tabulā.
Izmantojiet operāciju RIGHT JOIN, lai izveidotu labā ārējā apvienošana. Labie ārējie savienojumi ietver visus ierakstus no otrās (labās) no abām tabulām pat tad, ja nav atbilstošu vērtību ierakstiem pirmajā (kreisajā) tabulā.
Piemēram, varat izmantot LEFT JOIN ar tabulām Nodaļas (kreisā) un Darbinieki (labā), lai atlasītu visas nodaļas, tostarp tās, kurām nav piesaistītu darbinieku. Lai atlasītu visus darbiniekus, tostarp tos, kas nav piesaistīti nodaļai, izmantojiet RIGHT JOIN.
Tālāk esošajā piemērā ir parādīts, kā varat savienot tabulas Kategorijas un Produkti laukā CategoryID. Vaicājums rada kategoriju sarakstu, kas ietver tās, kurās nav produktu:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
Šajā 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, ievadiet lauka nosaukumu priekšrakstā SELECT — šajā gadījumā Categories.CategoryID.
Lai izveidotu vaicājumu, kas ietver tikai ierakstus, kuros dati savienotajos laukos ir vienādi, izmantojiet darbību INNER JOIN.
-
LEFT JOIN vai RIGHT JOIN var ligzdot INNER JOIN, bet INNER JOIN nevar ligzdot LEFT JOIN vai RIGHT JOIN. Skatiet diskusiju par ligzdošanu INNER JOIN tēmā, lai uzzinātu, kā savienojumus ligzdot citos savienojumos.
-
Varat saistīt vairākas klauzulas ON. Skatiet diskusiju par klauzulu saistīšanu INNER JOIN tēmā, lai uzzinātu, kā to paveikt.
Mēģinot apvienot laukus, kas satur Memo vai OLE objekta datus, rodas kļūda.