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:
- Unió interna / Unió simple
- Unió exterior esquerra / Unió esquerra
- Unió exterior dreta / Unió dreta
- Unió exterior completa
- Unió creuada
- 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:
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.
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.
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:
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.
RIGHT JOIN o RIGHT Outer 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:
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.
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:
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.
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
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
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;>