SQL pievienošanās darbība apvieno datus vai rindas no divām vai vairākām tabulām, pamatojoties uz kopīgu lauku starp tām.
Šajā rakstā mēs uzzināsim par pievienojas SQL, aptver JOIN veidus, sintaksi un piemērus.
SQL JOIN
SQL JOIN klauzula tiek izmantota, lai vaicātu un piekļūtu datiem no vairākām tabulām, izveidojot starp tām loģiskas attiecības. Tas var piekļūt datiem no vairākām tabulām vienlaikus, izmantojot kopīgas atslēgas vērtības, kas tiek koplietotas dažādās tabulās.
Mēs varam izmantot SQL JOIN ar vairākām tabulām. To var arī savienot pārī ar citām klauzulām, vispopulārākais lietojums būs JOIN with KUR klauzula lai filtrētu datu izguvi.
SQL JOIN piemērs
Apsveriet abas zemāk esošās tabulas šādi:
Students:
Studentu kurss :

Abas šīs tabulas ir savienotas ar vienu kopīgu atslēgu (kolonnu), t.i., ROLL_NO.
Mēs varam veikt JOIN darbību, izmantojot doto SQL vaicājumu:
SELECT s.roll_no, s.name, s.address, s.phone, s.age, sc.course_id FROM Student s JOIN StudentCourse sc ON s.roll_no = sc.roll_no;>
Izvade:
| ROLL_NO | VĀRDS | ADRESE | TELEFONIS | VECUMS | COURSE_ID |
| 1 | SARBI | DELI | XXXXXXXXX | 18 | 1 |
| 2 | PRAKSE | BIHAR | XXXXXXXXX | 19 | 2 |
| 3 | RIJANKA | SILGURI | XXXXXXXXX | divdesmit | 2 |
| 4 | DZIĻI | RAMNAGAR | XXXXXXXXX | 18 | 3 |
| 5 | SAPTARI | KOLKATA | XXXXXXXXX | 19 | 1 |
JOIN veidi SQL
SQL ir daudz veidu pievienošanās. Atkarībā no lietošanas gadījuma varat izmantot dažāda veida SQL JOIN klauzulu. Tālāk ir norādīti bieži izmantotie SQL JOIN veidi:
- IEKŠĒJĀ PIEVIENOŠANĀS
- PA kreisi PIEVIENOTIES
- PAREIZI PIEVIENOJIES
- PILNĪGS PIEVIENOJIES
- DABĪGA PIEVIENOŠANĀS
SQL INNER JOIN
The IEKŠĒJĀ PIEVIENOŠANĀS atslēgvārds atlasa visas rindas no abām tabulām, ja vien nosacījums ir izpildīts. Šis atslēgvārds izveidos rezultātu kopu, apvienojot visas rindas no abām tabulām, kurās nosacījums atbilst, t.i., kopējā lauka vērtība būs vienāda.
Sintakse :
SQL INNER JOIN sintakse ir:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 INNER JOIN table2 ON table1.matching_column = table2.matching_column;>
Šeit,
- tabula1 : Pirmā tabula.
- tabula2 : Otrā tabula
- atbilstošā_kolonna : abām tabulām kopīga kolonna.
Piezīme : IEKŠĒJĀ JOIN vietā varam rakstīt arī JOIN. JOIN ir tas pats, kas IEKŠĒJĀ JOIN.

INNER JOIN Piemērs
Apskatīsim INNER JOIN klauzulas piemēru un sapratīsim, ka tā darbojas.
Šis vaicājums parādīs dažādos kursos uzņemto studentu vārdus un vecumu.
SELECT StudentCourse.COURSE_ID, Student.NAME, Student.AGE FROM Student INNER JOIN StudentCourse ON Student.ROLL_NO = StudentCourse.ROLL_NO;>
Izvade :

SQL LEFT JOIN
LEFT JOIN atgriež visas tabulas rindas savienojuma kreisajā pusē un saskaņo rindas tabulai savienojuma labajā pusē. Rindām, kurām labajā pusē nav atbilstošas rindas, rezultātu kopa saturēs null . LEFT JOIN ir pazīstams arī kā LEFT OUTTER JOIN.
Sintakse
LEFT JOIN sintakse SQL ir :
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 LEFT JOIN table2 ON table1.matching_column = table2.matching_column;>
Šeit,
- tabula 1: Pirmā tabula.
- tabula2 : Otrā tabula
- atbilstošā_kolonna : abām tabulām kopīga kolonna.
Piezīme : LEFT JOIN vietā varam izmantot arī LEFT OUTTER JOIN, abi ir vienādi.
LEFT JOIN Piemērs
Apskatīsim LEFT JOIN klauzulas piemēru un sapratīsim, ka tā darbojas
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student LEFT JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Izvade :

SQL RIGHT JOIN
PAREIZI PIEVIENOJIES atgriež visas tabulas rindas savienojuma labajā pusē un atbilstošās rindas tabulai savienojuma kreisajā pusē. Tas ir ļoti līdzīgs LEFT JOIN Rindām, kurām kreisajā pusē nav atbilstošas rindas, rezultātu kopa saturēs null . RIGHT JOIN ir pazīstams arī kā RIGHT OUTTER JOIN.
Sintakse:
RIGHT JOIN sintakse SQL ir šāda:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 RIGHT JOIN table2 ON table1.matching_column = table2.matching_column;>
Šeit,
- tabula1 : Pirmā tabula.
- tabula2 : Otrā tabula
- atbilstošā_kolonna : abām tabulām kopīga kolonna.
Piezīme : Varam arī izmantot LABĀ ĀRĒJĀ PIEVIENOTIES RIGHT JOIN vietā abi ir vienādi.

RIGHT JOIN Piemērs :
Apskatīsim RIGHT JOIN klauzulas piemēru un sapratīsim, ka tā darbojas
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student RIGHT JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Izvade:

griešanas rīks ubuntu
SQL FULL JOIN
PILNĪGS PIEVIENOJIES izveido rezultātu kopu, apvienojot gan LEFT JOIN, gan RIGHT JOIN rezultātus. Rezultātu kopa saturēs visas rindas no abām tabulām. Rindām, kurām nav atbilstības, rezultātu kopa saturēs NULL vērtības.
Sintakse
SQL FULL JOIN sintakse ir:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 FULL JOIN table2 ON table1.matching_column = table2.matching_column;>
Šeit,
- tabula1 : Pirmā tabula.
- tabula2 : Otrā tabula
- atbilstošā_kolonna : abām tabulām kopīga kolonna.
FULL JOIN Piemērs
Apskatīsim klauzulas FULL JOIN piemēru un sapratīsim, ka tā darbojas
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student FULL JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Izvade:
pārvērst virkni par datumu
| VĀRDS | COURSE_ID |
|---|---|
| SARBI | 1 |
| PRAKSE | 2 |
| RIJANKA | 2 |
| DZIĻI | 3 |
| SAPTARI | 1 |
| DHANRAJ | NULL |
| ROHIT | NULL |
| NIRAJ | NULL |
| NULL | 4 |
| NULL | 5 |
| NULL | 4 |
SQL dabiskā pievienošanās (?)
Dabiskā savienošana var apvienot tabulas, pamatojoties uz kopīgajām kolonnām tabulās, kuras tiek savienotas. Dabiskā savienošana atgriež visas rindas, saskaņojot vērtības kopējās kolonnās, kurām ir vienāds kolonnu nosaukums un datu tips, un šai kolonnai ir jābūt abās tabulās.
Abām tabulām ir jābūt vismaz vienai kopējai kolonnai ar vienādu kolonnas nosaukumu un tādu pašu datu tipu.
Abas tabulas ir savienotas, izmantojot Krustveida pievienošanās .
DBVS meklēs kopīgu kolonnu ar tādu pašu nosaukumu un datu tipu. Rezultātā tiek saglabāti korektori, kuriem kopējās kolonnās ir tieši tādas pašas vērtības.
Dabiskas pievienošanās piemērs:
Apskatiet divas zemāk esošās tabulas — Darbinieks un nodaļa
| Darbinieks | ||
|---|---|---|
| Emp_id | Emp_name | Dept_id |
| 1 | Ram | 10 |
| 2 | Džons | 30 |
| 3 | Bobs | piecdesmit |
| nodaļa | |
|---|---|
| Dept_id | Dept_name |
| 10 | IT |
| 30 | HR |
| 40 | TIS |
Problēma : atrodiet visus darbiniekus un viņu attiecīgās nodaļas.
Risinājuma vaicājums : (Darbinieks) ? (Nodaļa)
| Emp_id | Emp_name | Dept_id | Dept_id | Dept_name |
|---|---|---|---|---|
| 1 | Ram | 10 | 10 | IT |
| 2 | Džons | 30 | 30 | HR |
| Darbinieku dati | Nodaļas dati |
Papildu resursi
Lai uzzinātu vairāk par SQL JOIN, mēģiniet skatīties mūsu videoklipus un lasīt rakstus:
Pa kreisi JOIN (video)
Pa labi JOIN (video)
Pilns PIEVIENOTIES (video)
SQL | PIEVIENOTIES (Dekarta pievienošanās, pašapvienošanās)