logo

Tipuri de SQL JOIN

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:

  1. Inner Join / Simple Join
  2. Left Outer Join / Left Join
  3. Right Outer Join / Right Join
  4. Unire exterioară completă
  5. Cross Join
  6. 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ă:

Tipuri de SQL JOIN

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.

Tipuri de SQL JOIN

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.

Tipuri de SQL JOIN

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ă:

Tipuri de SQL JOIN

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.

Tipuri de SQL 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ă:

Tipuri de SQL JOIN

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.

Tipuri de SQL JOIN

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ă:

Tipuri de SQL 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 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.

Tipuri de SQL JOIN

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 

Tipuri de SQL JOIN

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.

Tipuri de SQL JOIN

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;>