SQL JOIN
Un SQL Join este utilizat pentru a prelua sau combina date (rânduri sau coloane) din două sau mai multe tabele pe baza condițiilor definite.
Tabelul 1: Comanda
Comanda ID | Număr de înregistrare client | OrderName | Numele produsului |
---|---|---|---|
12025 | 101 | Petru | ABC |
12030 | 105 | Robert | XYX |
12032 | 110 | James | XYZ |
12034 | 115 | Andrew | PQR |
12035 | 120 | Mathew | AAA |
Tabelul 2: Client
Număr de înregistrare client | Numele clientului | Țară |
---|---|---|
100 | Murdar | Maximo |
101 | Prinţ | Taiwan |
103 | Maria Fernandez | Curcan |
105 | Iasomie | Paris |
110 | Faf Nevăstuica | Indonezia |
120 | Racheta Romei | Rusia |
Acum, avem două tabele Ordin si Client . Este un Număr de înregistrare client coloană comună în ambele tabele. Deci, scrieți interogarea SQL pentru a defini relația generală pentru a selecta înregistrările potrivirilor din ambele tabele.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
După executarea celor de mai sus SQL interogări, produce următorul rezultat:
Comanda ID | Numele clientului | Țară | Numele produsului |
---|---|---|---|
12025 | Prinţ | Taiwan | ABC |
12030 | Iasomie | Paris | XYX |
12032 | Faf Nevăstuica | Indonezia | XYZ |
12035 | Racheta Romei | Rusia | AAA |
Tipuri de unire SQL
Există diferite tipuri de îmbinări utilizate în SQL:
- Inner Join / Simple Join
- Left Outer Join / Left Join
- Right Outer Join / Right Join
- Unire exterioară completă
- Cross Join
- Alăturare automată
Inner Join
Îmbinarea internă este utilizată pentru a selecta toate rândurile sau coloanele care se potrivesc din ambele tabele sau atâta timp cât condiția definită este validă în SQL.
Sintaxă:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Putem reprezenta îmbinarea interioară prin diagrama Venn, după cum urmează:
Tabelul 1: Elevi
Carnet de student | Numele studentului | Subiect | ID profesor |
---|---|---|---|
101 | Alexandra | Informatică | T201 |
102 | Charles | Economie | T202 |
103 | Tom Cruise | Informatică | T201 |
104 | Aaron Finch | Electronică | T203 |
105 | Seed Bajoff | Proiectare web | T204 |
106 | Christopher | Literatură engleză | T205 |
107 | Denim | Designer de moda | T206 |
Tabelul 2: Profesori
ID profesor | Numele profesorului | E-mail profesor |
---|---|---|
T201 | domnule Davis | [email protected] |
T202 | doamna Jonas | [email protected] |
T201 | domnule Davis | [email protected] |
T204 | doamna Lopez | [email protected] |
T205 | doamna Wiley | [email protected] |
T206 | Domnul Bean | [email protected] |
Avem două tabele: Elevi si Profesori Mese. Să scriem interogările SQL pentru a se alătura tabelului folosind INNER JOIN după cum urmează:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
După executarea interogării, acesta produce tabelul de mai jos.
Asociere naturală
Este un tip de tip interior care unește două sau mai multe tabele pe baza aceluiași nume de coloană și are același tip de date prezent pe ambele tabele.
Sintaxă:
Select * from tablename1 Natural JOIN tablename_2;
Avem două tabele: Elevi si Profesori Mese. Să scriem interogările SQL pentru a se alătura tabelului folosind Natural JOIN după cum urmează:
Select * from Students Natural JOIN Teachers;
După executarea interogării de mai sus, produce următorul tabel.
LEFT JOIN
The LEFT JOIN este folosit pentru a prelua toate înregistrările din tabelul din stânga (tabelul 1) și rândurile sau coloanele potrivite din tabelul din dreapta (tabelul 2). Dacă ambele tabele nu conțin rânduri sau coloane potrivite, returnează valoarea NULL.
Sintaxă:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
De asemenea, putem reprezenta îmbinarea stângă prin diagrama Venn, după cum urmează:
Notă: În unele baze de date, LEFT JOIN este cunoscută și sub numele de LEFT OUTER JOIN.
Tabelul 1: Product_Details
ID produs | Numele produsului | Cantitate |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobil | 38000 |
Pro103 | Căști | 5000 |
Pro104 | Televiziune | 25000 |
Pro105 | iPad | 60000 |
Tabelul 2: Detalii_client
întreg dublu java
Numele clientului | Adresa Clientului | CustomerAge | ID produs |
---|---|---|---|
Martin Guptill | San Francisco, SUA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Noua Zeelandă | 27 | Pro102 |
Jofra Archer | Africa de Sud | 24 | Pro105 |
Kate Wiley | Australia | douăzeci | Pro103 |
Avem două tabele: Detalii produs si Detalii Client Mese. Să scriem interogările SQL pentru a se alătura tabelului folosind LEFT JOIN după cum urmează:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
După executarea interogării, acesta produce următorul tabel.
RIGHT JOIN sau RIGHT Outer JOIN:
The ÎNSCRIEȚI DREPT este folosit pentru a prelua toate înregistrările din tabelul din dreapta (tabelul 2) și rândurile sau coloanele potrivite din tabelul din stânga (tabelul 1). Dacă ambele tabele nu conțin rânduri sau coloane potrivite, returnează valoarea NULL.
Sintaxă:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
De asemenea, putem reprezenta îmbinarea dreaptă prin diagrama Venn, după cum urmează:
Notă: În unele baze de date, RIGHT JOIN este cunoscută și sub numele de RIGHT OUTER JOIN.
Tabelul 1: Product_Details
ID | Numele produsului | Cantitate |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobil | 38000 |
Pro103 | Căști | 5000 |
Pro104 | Televiziune | 25000 |
Pro105 | iPad | 60000 |
Tabelul 2: Detalii_client
Numele clientului | Adresa Clientului | CustomerAge | ID produs |
---|---|---|---|
Martin Guptill | San Francisco, SUA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Noua Zeelandă | 27 | Pro102 |
Jofra Archer | Africa de Sud | 24 | Pro105 |
Augur | Anglia | 29 | Pro107 |
Morgan | Anglia | douăzeci | Pro108 |
Avem două tabele: Detalii produs si Detalii Client Mese. Să scriem interogările SQL pentru a se alătura tabelului folosind ÎNSCRIEȚI DREPT după cum urmează:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
După executarea interogării, acesta produce tabelul de mai jos.
FULL JOIN sau FULL Outer JOIN:
Este o combinație de rezultate ale ambelor LEFT JOIN și ÎNSCRIEȚI DREPT . Tabelele unite returnează toate înregistrările din ambele tabele și dacă nu se găsesc potriviri în tabel, plasează NULL. Se mai numește și a UNIRE EXTERIOR COMPLET .
Sintaxă:
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Sau, UNIRE EXTERIOR COMPLET
Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name;
De asemenea, putem reprezenta uniunea exterioară completă prin diagrama Venn, după cum urmează:
Tabelul 1: Product_Details
ID | Numele produsului | Cantitate |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobil | 38000 |
Pro103 | Căști | 5000 |
Pro104 | Televiziune | 25000 |
Pro105 | iPad | 60000 |
Tabelul 2: Detalii_client
Numele clientului | Adresa Clientului | CustomerAge | ID produs |
---|---|---|---|
Martin Guptill | San Francisco, SUA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Noua Zeelandă | 27 | Pro102 |
Jofra Archer | Africa de Sud | 24 | Pro105 |
Augur | Anglia | 29 | Pro107 |
Morgan | Anglia | douăzeci | Pro108 |
Avem două tabele: Detalii produs si Detalii Client Mese. Să scriem interogările SQL pentru a se alătura tabelului folosind DEPLIN ÎNSCRIEȚI-VĂ după cum urmează:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
După executarea interogării, acesta produce tabelul de mai jos.
Notă: MySQL nu acceptă conceptele FULL JOIN, așa că putem folosi clauza UNION ALL pentru a combina ambele tabele.
Aici este Sintaxa pentru UNIREA TOȚI Clauză pentru combinarea tabelelor.
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID
CROS JOIN
Este cunoscut și ca JOIN CARTESIAN , care returnează produsul cartezian a două sau mai multe tabele unite. The CROS JOIN produce un tabel care îmbină fiecare rând din primul tabel cu fiecare al doilea rând de tabel. Nu este necesar să includeți nicio condiție în CROSS JOIN.
Sintaxă:
Select * from table_1 cross join table_2;
Sau,
Select column1, column2, column3 FROM table_1, table_2;
Tabelul 1: Product_Details
actor ranbir kapoor varsta
ID | Numele produsului | Cantitate |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobil | 38000 |
Pro103 | Căști | 5000 |
Pro104 | Televiziune | 25000 |
Pro105 | iPad | 60000 |
Tabelul 2: Detalii_client
Numele clientului | Adresa Clientului | CustomerAge | ID produs |
---|---|---|---|
Martin Guptill | San Francisco, SUA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Noua Zeelandă | 27 | Pro102 |
Jofra Archer | Africa de Sud | 24 | Pro105 |
Augur | Anglia | 29 | Pro107 |
Morgan | Anglia | douăzeci | Pro108 |
Avem două tabele: Detalii produs si Detalii Client Mese. Să scriem interogările SQL pentru a se alătura tabelului folosind DEPLIN ÎNSCRIEȚI-VĂ după cum urmează:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
După executarea interogării, acesta produce tabelul de mai jos.
AUTO-ALĂTURARE
Este un SELF JOIN folosit pentru a crea un tabel prin alăturarea ei înșiși, deoarece existau două tabele. Face denumirea temporară a cel puțin unui tabel într-o instrucțiune SQL.
Sintaxă:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
tabelul 1 și Tbl2 sunt două aliasuri de tabel diferite pentru același tabel.
Tabelul 1: Product_Details
ID | Numele produsului | Cantitate |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobil | 38000 |
Pro103 | Căști | 5000 |
Pro104 | Televiziune | 25000 |
Pro105 | iPad | 60000 |
Să scriem interogările SQL pentru a se alătura tabelului folosind AUTO-ALĂTURARE după cum urmează:
Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>