logo

Tipus de SQL JOIN

SQL JOIN

Una unió SQL s'utilitza per obtenir o combinar dades (files o columnes) de dues o més taules en funció de les condicions definides.

Taula 1: Ordre

ID de comanda ID de client OrderName Nom del producte
12025 101 Pere ABC
12030 105 Robert XYX
12032 110 Jaume XYZ
12034 115 Andreu PQR
12035 120 Mateu AAA

Taula 2: Client

ID de client Nom del client País
100 Desordenat Màxic
101 Príncep Taiwan
103 Maria Fernandez Turquia
105 gessamí París
110 Faf Weasel Indonèsia
120 Coet de Roma Rússia

Ara tenim dues taules Ordre i la Client . Hi ha un ID de client columna comuna a les dues taules. Per tant, escriviu la consulta SQL per definir la relació general per seleccionar els registres de coincidències de les dues taules.

 Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID; 

Després d'executar l'anterior SQL consultes, produeix la següent sortida:

ID de comanda Nom del client País Nom del producte
12025 Príncep Taiwan ABC
12030 gessamí París XYX
12032 Faf Weasel Indonèsia XYZ
12035 Coet de Roma Rússia AAA

Tipus d'unió SQL

Hi ha diferents tipus d'unions que s'utilitzen en SQL:

  1. Unió interna / Unió simple
  2. Unió exterior esquerra / Unió esquerra
  3. Unió exterior dreta / Unió dreta
  4. Unió exterior completa
  5. Unió creuada
  6. Unió automàtica

Combinació interna

La unió interna s'utilitza per seleccionar totes les files o columnes coincidents en ambdues taules o sempre que la condició definida sigui vàlida en SQL.

Sintaxi:

 Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column; 

Podem representar la unió interna mitjançant el diagrama de Venn, de la següent manera:

Tipus de SQL JOIN

Taula 1: Alumnes

ID_estudiant Nom de l'estudiant Assignatura ID del professor
101 Alexandra Ciències de la Computació T201
102 Carles Economia T202
103 Tom Cruise Ciències de la Computació T201
104 Aaron Finch Electrònica T203
105 Seed Bajoff Disseny web T204
106 Cristòfor Literatura anglesa T205
107 Denim Dissenyador de moda T206

Taula 2: Professorat

ID del professor Nom del professor Correu electrònic del professor
T201 Senyor Davis [correu electrònic protegit]
T202 Senyora Jonas [correu electrònic protegit]
T201 Senyor Davis [correu electrònic protegit]
T204 Senyora López [correu electrònic protegit]
T205 Senyora Wiley [correu electrònic protegit]
T206 Mr Bean [correu electrònic protegit]

Tenim dues taules: Estudiants i la Mestres Taules. Escrivim les consultes SQL per unir-nos a la taula utilitzant el COMBINACIÓ INTERNA com segueix:

 Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID; 

Després d'executar la consulta, genera la taula següent.

Tipus de SQL JOIN

Unió natural

És un tipus de tipus intern que uneix dues o més taules basant-se en el mateix nom de columna i té el mateix tipus de dades present a les dues taules.

Sintaxi:

 Select * from tablename1 Natural JOIN tablename_2; 

Tenim dues taules: Estudiants i la Mestres Taules. Escrivim les consultes SQL per unir-nos a la taula utilitzant el Natural JOIN com segueix:

 Select * from Students Natural JOIN Teachers; 

Després d'executar la consulta anterior, produeix la taula següent.

Tipus de SQL JOIN

ESQUERRA UNIR

El ESQUERRA UNIR s'utilitza per recuperar tots els registres de la taula de l'esquerra (taula 1) i les files o columnes coincidents de la taula de la dreta (taula 2). Si les dues taules no contenen cap fila o columna coincidents, retorna el valor NULL.

Sintaxi:

 Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name; 

També podem representar la unió esquerra mitjançant el diagrama de Venn, de la següent manera:

Tipus de SQL JOIN

Nota: En algunes bases de dades, LEFT JOIN també es coneix com LEFT OUTER JOIN.

Taula 1: Producte_Details

ProductID Nom del producte Import
Pro101 Portàtil 56000
Pro102 Mòbil 38000
Pro103 Auriculars 5000
Pro104 Televisió 25000
Pro105 iPad 60000

Taula 2: Dades_client

teclat pàgina avall
Nom del client Adreça del client Edat del client ProductID
Martin Guptill San Francisco, USA 26 Pro101
Jaume Austràlia 29 Pro103
Ambati Williamson Nova Zelanda 27 Pro102
Jofra Archer Sud-Àfrica 24 Pro105
Kate Wiley Austràlia 20 Pro103

Tenim dues taules: Detalls del producte i la Dades_client Taules. Escrivim les consultes SQL per unir-nos a la taula utilitzant el ESQUERRA UNIR com segueix:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Després d'executar la consulta, genera la taula següent.

Tipus de SQL JOIN

El UNIR-SE A LA DRETA s'utilitza per recuperar tots els registres de la taula dreta (taula 2) i les files o columnes coincidents de la taula esquerra (taula 1). Si les dues taules no contenen cap fila o columna coincidents, retorna el valor NULL.

Sintaxi:

 Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name; 

També podem representar la unió dreta mitjançant el diagrama de Venn, de la següent manera:

Tipus de SQL JOIN

Nota: En algunes bases de dades, la RIGHT JOIN també es coneix com a RIGHT OUTER JOIN.

Taula 1: Producte_Details

ID Nom del producte Import
Pro101 Portàtil 56000
Pro102 Mòbil 38000
Pro103 Auriculars 5000
Pro104 Televisió 25000
Pro105 iPad 60000

Taula 2: Dades_client

Nom del client Adreça del client Edat del client ProductID
Martin Guptill San Francisco, USA 26 Pro101
Jaume Austràlia 29 Pro103
Ambati Williamson Nova Zelanda 27 Pro102
Jofra Archer Sud-Àfrica 24 Pro105
Presagi Anglaterra 29 Pro107
Morgan Anglaterra 20 Pro108

Tenim dues taules: Detalls del producte i la Dades_client Taules. Escrivim les consultes SQL per unir-nos a la taula utilitzant el UNIR-SE A LA DRETA com segueix:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Després d'executar la consulta, genera la taula següent.

Tipus de SQL JOIN

FULL JOIN o FULL Outer JOIN:

És una combinació de resultats de tots dos UNIR-SE A L'ESQUERRA i UNIR-SE A LA DRETA . Les taules unides retornen tots els registres de les dues taules i si no es troben coincidències a la taula, col·loca NULL. També s'anomena a UNIÓ EXTERIOR COMPLETA .

Sintaxi:

 Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name; 

O, UNIÓ EXTERIOR COMPLETA

 Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name; 

També podem representar la unió externa completa mitjançant el diagrama de Venn, de la següent manera:

Tipus de SQL JOIN

Taula 1: Producte_Details

ID Nom del producte Import
Pro101 Portàtil 56000
Pro102 Mòbil 38000
Pro103 Auriculars 5000
Pro104 Televisió 25000
Pro105 iPad 60000

Taula 2: Dades_client

Nom del client Adreça del client Edat del client ProductID
Martin Guptill San Francisco, USA 26 Pro101
Jaume Austràlia 29 Pro103
Ambati Williamson Nova Zelanda 27 Pro102
Jofra Archer Sud-Àfrica 24 Pro105
Presagi Anglaterra 29 Pro107
Morgan Anglaterra 20 Pro108

Tenim dues taules: Detalls del producte i la Dades_client Taules. Escrivim les consultes SQL per unir-nos a la taula utilitzant el COMPLET UNEIX-TE de la següent manera:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Després d'executar la consulta, genera la taula següent.

Tipus de SQL JOIN

Nota: MySQL no admet els conceptes FULL JOIN, de manera que podem utilitzar la clàusula UNION ALL per combinar ambdues taules.

Aquí teniu la sintaxi per UNIÓ TOTS Clàusula per combinar les taules.

 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 

Tipus de SQL JOIN

CREU JOIN

També es coneix com UNICIÓ CARTESIANA , que retorna el producte cartesià de dues o més taules unides. El CREU JOIN produeix una taula que combina cada fila de la primera taula amb cada segona fila de la taula. No cal incloure cap condició a CROSS JOIN.

Sintaxi:

 Select * from table_1 cross join table_2; 

O,

 Select column1, column2, column3 FROM table_1, table_2; 

Taula 1: Producte_Details

ID Nom del producte Import
Pro101 Portàtil 56000
Pro102 Mòbil 38000
Pro103 Auriculars 5000
Pro104 Televisió 25000
Pro105 iPad 60000

Taula 2: Dades_client

Nom del client Adreça del client Edat del client ProductID
Martin Guptill San Francisco, USA 26 Pro101
Jaume Austràlia 29 Pro103
Ambati Williamson Nova Zelanda 27 Pro102
Jofra Archer Sud-Àfrica 24 Pro105
Presagi Anglaterra 29 Pro107
Morgan Anglaterra 20 Pro108

Tenim dues taules: Detalls del producte i la Dades_client Taules. Escrivim les consultes SQL per unir-nos a la taula utilitzant el COMPLET UNEIX-TE de la següent manera:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details; 

Després d'executar la consulta, genera la taula següent.

activa java
Tipus de SQL JOIN

UNIR-SE AUTOMÀTICA

És un SELF JOIN utilitzat per crear una taula unint-se ja que hi havia dues taules. Fa un nom temporal d'almenys una taula en una instrucció SQL.

Sintaxi:

 Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition; 

Taula 1 i Tbl2 són dos àlies de taula diferents per a la mateixa taula.

Taula 1: Producte_Details

ID Nom del producte Import
Pro101 Portàtil 56000
Pro102 Mòbil 38000
Pro103 Auriculars 5000
Pro104 Televisió 25000
Pro105 iPad 60000

Escrivim les consultes SQL per unir-nos a la taula utilitzant el UNIR-SE AUTOMÀTICA com segueix:

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