SQL JOIN
Um SQL Join é usado para buscar ou combinar dados (linhas ou colunas) de duas ou mais tabelas com base nas condições definidas.
Tabela 1: Pedido
ID do pedido | Identificação do Cliente | Nome do pedido | Nome do Produto |
---|---|---|---|
12025 | 101 | Peter | abc |
12030 | 105 | Roberto | XYX |
12032 | 110 | James | XYZ |
12034 | 115 | André | PQR |
12035 | 120 | Matheus | AAA |
Tabela 2: Cliente
Identificação do Cliente | Nome do cliente | País |
---|---|---|
100 | Bagunçado | Máximo |
101 | Principe | Taiwan |
103 | Maria Fernández | Peru |
105 | Jasmim | Paris |
110 | Faf Doninha | Indonésia |
120 | Foguete Roma | Rússia |
Agora temos duas tabelas Ordem e a Cliente . Existe um Identificação do Cliente coluna comum em ambas as tabelas. Portanto, escreva a consulta SQL para definir o relacionamento geral para selecionar os registros das correspondências de ambas as tabelas.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Depois de executar o acima SQL consultas, ele produz a seguinte saída:
ID do pedido | Nome do cliente | País | Nome do Produto |
---|---|---|---|
12025 | Principe | Taiwan | abc |
12030 | Jasmim | Paris | XYX |
12032 | Faf Doninha | Indonésia | XYZ |
12035 | Foguete Roma | Rússia | AAA |
Tipos de junção SQL
Existem diferentes tipos de junções usadas em SQL:
- Junção interna/junção simples
- Junção Externa Esquerda / Junção Esquerda
- Junção Externa Direita / Junção Direita
- Junção externa completa
- Junção Cruzada
- Auto-associação
Junção interna
A junção interna é usada para selecionar todas as linhas ou colunas correspondentes em ambas as tabelas ou desde que a condição definida seja válida em SQL.
Sintaxe:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Podemos representar a junção interna através do diagrama de Venn, da seguinte forma:
Tabela 1: Alunos
Identidade estudantil | Nome do aluno | Assunto | ID do professor |
---|---|---|---|
101 | Alexandra | Ciência da Computação | T201 |
102 | Carlos | Economia | T202 |
103 | Tom Cruise | Ciência da Computação | T201 |
104 | Aaron Finch | Eletrônicos | T203 |
105 | Semente Bajoff | Webdesign | T204 |
106 | Cristóvão | Literatura inglesa | T205 |
107 | Jeans | Designer de moda | T206 |
Tabela 2: Professores
ID do professor | Nome do professor | E-mail do professor |
---|---|---|
T201 | Sr. | [e-mail protegido] |
T202 | Sra Jonas | [e-mail protegido] |
T201 | Sr. | [e-mail protegido] |
T204 | Sra. López | [e-mail protegido] |
T205 | Sra. Wiley | [e-mail protegido] |
T206 | Sr. Bean | [e-mail protegido] |
Temos duas tabelas: Alunos e a Professores Tabelas. Vamos escrever as consultas SQL para unir a tabela usando o JUNÇÃO INTERNA do seguinte modo:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Após executar a consulta, produz a tabela abaixo.
Associação Natural
É um tipo de tipo interno que une duas ou mais tabelas com base no mesmo nome de coluna e possui o mesmo tipo de dados presente em ambas as tabelas.
Sintaxe:
Select * from tablename1 Natural JOIN tablename_2;
Temos duas tabelas: Alunos e a Professores Tabelas. Vamos escrever as consultas SQL para unir a tabela usando o JUNTE-SE Natural do seguinte modo:
Select * from Students Natural JOIN Teachers;
Depois de executar a consulta acima, ela produz a tabela a seguir.
ASSOCIAÇÃO À ESQUERDA
O ASSOCIAÇÃO À ESQUERDA é usado para recuperar todos os registros da tabela esquerda (tabela1) e as linhas ou colunas correspondentes da tabela direita (tabela2). Se ambas as tabelas não contiverem nenhuma linha ou coluna correspondente, ele retornará NULL.
Sintaxe:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
Também podemos representar a junção esquerda através do diagrama de Venn, da seguinte forma:
Nota: Em alguns bancos de dados, LEFT JOIN também é conhecido como LEFT OUTER JOIN.
Tabela 1: Detalhes do Produto
ID do produto | Nome do Produto | Quantia |
---|---|---|
Pro101 | Computador portátil | 56.000 |
Pro102 | Móvel | 38.000 |
Pro103 | Fones de ouvido | 5.000 |
Pro104 | Televisão | 25.000 |
Pro105 | iPad | 60.000 |
Tabela 2: Detalhes_doCliente
atualizando java
Nome do cliente | Endereço do cliente | Idade do Cliente | ID do produto |
---|---|---|---|
Martin Guptil | São Francisco, EUA | 26 | Pro101 |
James | Austrália | 29 | Pro103 |
Ambati Williamson | Nova Zelândia | 27 | Pro102 |
Jofra Archer | África do Sul | 24 | Pro105 |
Kate Wiley | Austrália | vinte | Pro103 |
Temos duas tabelas: Detalhes do produto e a Detalhes do cliente Tabelas. Vamos escrever as consultas SQL para unir a tabela usando o ASSOCIAÇÃO À ESQUERDA do seguinte modo:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Após executar a consulta, ela produz a seguinte tabela.
RIGHT JOIN ou RIGHT Outer JOIN:
O JUNTE-SE À DIREITA é usado para recuperar todos os registros da tabela direita (tabela2) e as linhas ou colunas correspondentes da tabela esquerda (tabela1). Se ambas as tabelas não contiverem nenhuma linha ou coluna correspondente, ele retornará NULL.
Sintaxe:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
Também podemos representar a junção direita através do diagrama de Venn, da seguinte forma:
Nota: Em alguns bancos de dados, RIGHT JOIN também é conhecido como RIGHT OUTER JOIN.
Tabela 1: Detalhes do Produto
EU IA | Nome do Produto | Quantia |
---|---|---|
Pro101 | Computador portátil | 56.000 |
Pro102 | Móvel | 38.000 |
Pro103 | Fones de ouvido | 5.000 |
Pro104 | Televisão | 25.000 |
Pro105 | iPad | 60.000 |
Tabela 2: Detalhes_doCliente
Nome do cliente | Endereço do cliente | Idade do cliente | ID do produto |
---|---|---|---|
Martin Guptil | São Francisco, EUA | 26 | Pro101 |
James | Austrália | 29 | Pro103 |
Ambati Williamson | Nova Zelândia | 27 | Pro102 |
Jofra Archer | África do Sul | 24 | Pro105 |
Presságio | Inglaterra | 29 | Pro107 |
Morgan | Inglaterra | vinte | Pro108 |
Temos duas tabelas: Detalhes do produto e a Detalhes do cliente Tabelas. Vamos escrever as consultas SQL para unir a tabela usando o JUNTE-SE À DIREITA do seguinte modo:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Após executar a consulta, produz a tabela abaixo.
FULL JOIN ou FULL Outer JOIN:
É um conjunto de resultados combinados de ambos ASSOCIAÇÃO À ESQUERDA e JUNTE-SE À DIREITA . As tabelas unidas retornam todos os registros de ambas as tabelas e se nenhuma correspondência for encontrada na tabela, coloca NULL. Também é chamado de JUNÇÃO EXTERIOR COMPLETA .
Sintaxe:
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Ou, JUNÇÃO 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ém podemos representar a junção externa completa através do diagrama de Venn, como segue:
Tabela 1: Detalhes do Produto
EU IA | Nome do Produto | Quantia |
---|---|---|
Pro101 | Computador portátil | 56.000 |
Pro102 | Móvel | 38.000 |
Pro103 | Fones de ouvido | 5.000 |
Pro104 | Televisão | 25.000 |
Pro105 | iPad | 60.000 |
Tabela 2: Detalhes_doCliente
Nome do cliente | Endereço do cliente | Idade do Cliente | ID do produto |
---|---|---|---|
Martin Guptil | São Francisco, EUA | 26 | Pro101 |
James | Austrália | 29 | Pro103 |
Ambati Williamson | Nova Zelândia | 27 | Pro102 |
Jofra Archer | África do Sul | 24 | Pro105 |
Presságio | Inglaterra | 29 | Pro107 |
Morgan | Inglaterra | vinte | Pro108 |
Temos duas tabelas: Detalhes do produto e a Detalhes do cliente Tabelas. Vamos escrever as consultas SQL para unir a tabela usando o COMPLETO JUNTE-SE da seguinte forma:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Após executar a consulta, produz a tabela abaixo.
Nota: MySQL não suporta conceitos FULL JOIN, então podemos usar a cláusula UNION ALL para combinar ambas as tabelas.
Aqui está a sintaxe para UNIÃO TODOS Cláusula para combinar as tabelas.
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
JUNÇÃO CRUZADA
Também é conhecido como JUNÇÃO CARTESIANA , que retorna o produto cartesiano de duas ou mais tabelas unidas. O JUNÇÃO CRUZADA produz uma tabela que mescla cada linha da primeira tabela com cada segunda linha da tabela. Não é necessário incluir nenhuma condição em CROSS JOIN.
Sintaxe:
Select * from table_1 cross join table_2;
Ou,
Select column1, column2, column3 FROM table_1, table_2;
Tabela 1: Detalhes do Produto
EU IA | Nome do Produto | Quantia |
---|---|---|
Pro101 | Computador portátil | 56.000 |
Pro102 | Móvel | 38.000 |
Pro103 | Fones de ouvido | 5.000 |
Pro104 | Televisão | 25.000 |
Pro105 | iPad | 60.000 |
Tabela 2: Detalhes_doCliente
Nome do cliente | Endereço do cliente | Idade do Cliente | ID do produto |
---|---|---|---|
Martin Guptil | São Francisco, EUA | 26 | Pro101 |
James | Austrália | 29 | Pro103 |
Ambati Williamson | Nova Zelândia | 27 | Pro102 |
Jofra Archer | África do Sul | 24 | Pro105 |
Presságio | Inglaterra | 29 | Pro107 |
Morgan | Inglaterra | vinte | Pro108 |
Temos duas tabelas: Detalhes do produto e a Detalhes do cliente Tabelas. Vamos escrever as consultas SQL para unir a tabela usando o COMPLETO JUNTE-SE da seguinte forma:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Após executar a consulta, produz a tabela abaixo.
AUTO-INScreva-se
É um SELF JOIN usado para criar uma tabela unindo-se, pois havia duas tabelas. Faz nomeação temporária de pelo menos uma tabela em uma instrução SQL.
Sintaxe:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
tabela 1 e Tbl2 são dois aliases de tabela diferentes para a mesma tabela.
Tabela 1: Detalhes do Produto
EU IA | Nome do Produto | Quantia |
---|---|---|
Pro101 | Computador portátil | 56.000 |
Pro102 | Móvel | 38.000 |
Pro103 | Fones de ouvido | 5.000 |
Pro104 | Televisão | 25.000 |
Pro105 | iPad | 60.000 |
Vamos escrever as consultas SQL para unir a tabela usando o AUTO-INScreva-se do seguinte modo:
quarto trimestre
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;>