O SQL JOIN combina uma ou mais tabelas com base em seu relacionamento. O SQL JOIN envolve uma tabela pai e um relacionamento de tabela filho.
Existem diferentes tipos de SQL JOINS:
- Junta interna
- União externa esquerda
- Junta externa direita
- União externa completa
- Cross Join.
Vamos entender cada tipo de junção SQL com a ajuda de exemplos.
Junto Interno
Inner Join no SQL é uma junção amplamente usada. Ele buscou todos os registros de ambas as tabelas até e a menos que a condição correspondesse. Isso significa que essa junção retornará apenas as linhas comuns em ambas as tabelas.
Sintaxe de SQL Inner Join:
SELECT Table_Name1.Colum_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 INNER JOIN Table_Name2 ON table_Name1.Column_Name =Table_Name2.Column_Name;
Considere as tabelas já existentes, que possuem os dados determinados:
Tabela 1:Funcionários
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | CIDADE | DEPARTAMENTO | GERENTE |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | C# | 5 |
1003 | NIQUIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRAQUI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | QUERER | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTE | 4 |
4002 | ASHWINI | BOLSA | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DÉLHI | ORACLE | 1 |
5001 | ARQUIVO | SHARMA | 55500 | DÉLHI | TESTE | 4 |
Tabela 2:Gerente
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTE |
5 | Akash Kadam | C# |
Tabela 3:Laptop:
LAPTOPID | NOME | EMPREGADO |
L101 | DELL | NULO |
L102 | HP | 1002 |
L103 | LENOVO | NULO |
L104 | HP | 3003 |
L105 | DELL | 4002 |
L106 | LENOVO | 4003 |
L107 | DELL | 5001 |
L108 | HP | NULO |
L109 | DELL | NULO |
L110 | HP | NULO |
Exemplos de SQL Inner Join
Exemplo 1: Execute uma consulta para unir a Tabela de funcionários e a Tabela de gerentes e exiba os detalhes dos funcionários, como ID do funcionário, nome do funcionário, salário da tabela do funcionário e ID do gerente e nome do gerente da tabela do gerente.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;
Na consulta acima, buscamos id do funcionário, nome, sobrenome, salário da tabela do funcionário e id do gerente, nome do gerente da tabela do gerente, onde a coluna id do gerente da tabela dos funcionários é igual à coluna id do gerente da tabela do gerente. A consulta retornará todos os registros de correspondência de ambas as tabelas. O ID do gerente é uma coluna comum entre as duas tabelas. E é um nome alternativo para a tabela do funcionário, enquanto M é para a tabela do gerente. O campo de ID do gerente é colocado como uma chave estrangeira na tabela de funcionários. O ID do gerenciador funciona como a chave primária na tabela do gerenciador, que cria um relacionamento pai-filho entre as duas tabelas.
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | GERENTE | MANAGER_NAME |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | Sneedeep Kaur |
2001 | PRAQUI | SHARMA | 55500 | 1 | Sneedeep Kaur |
4003 | RUCHIKA | AGARWAL | 60.000 | 1 | Sneedeep Kaur |
1003 | NIQUIL | VANI | 50500 | 2 | Kirti kirtano |
2002 | BHAVESH | JAIN | 65500 | 2 | Kirti kirtano |
3002 | ANUJA | QUERER | 50500 | 2 | Kirti kirtano |
3001 | PRANOTI | SHENDE | 55500 | 3 | Abhishek Manish |
3003 | DEEPAM | JAUHARI | 58500 | 3 | Abhishek Manish |
4002 | ASHWINI | BOLSA | 54500 | 3 | Abhishek Manish |
4001 | RAJESH | GOUD | 60500 | 4 | Anupam Mishra |
5001 | ARQUIVO | SHARMA | 55500 | 4 | Anupam Mishra |
1002 | VAIBHAV | SHARMA | 60.000 | 5 | Akash Kadam |
2003 | RUCHIKA | JAIN | 50.000 | 4 | Akash Kadam |
Os registros são exibidos em ordem crescente por ID do gerente.
Exemplo 2: Execute uma consulta para unir a tabela de funcionários e a tabela de gerentes e exiba os detalhes do funcionário, como id do funcionário, nome do funcionário, salário da tabela do funcionário e id do gerente e departamento do gerente da tabela do gerente, onde o salário do funcionário é maior que 58.000.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_DEPARTMENT FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE SALARY> 58000;
Na consulta acima, buscamos o ID do funcionário, nome, sobrenome, salário da tabela do funcionário, ID do gerente e departamento do gerente da tabela do gerente, onde o ID do gerente da tabela dos funcionários é igual ao ID do gerente do gerente tabela apenas os registros de funcionários cujo salário é superior a 58.000.
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | GERENTE | MANAGER_DEPARTMENT |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | ORACLE |
4003 | RUCHIKA | AGARWAL | 60.000 | 1 | ORACLE |
2002 | BHAVESH | JAIN | 65500 | 2 | FMW |
3003 | DEEPAM | JAUHARI | 58500 | 3 | JAVA |
4001 | RAJESH | GOUD | 60500 | 4 | TESTE |
1002 | VAIBHAV | SHARMA | 60.000 | 5 | C# |
Apenas seis registros são exibidos onde o salário de um funcionário excede 58.000.
Exemplo 3: Execute uma consulta para unir a tabela de funcionários e a tabela de laptop, exiba detalhes do funcionário como ID do funcionário, nome do funcionário e salário, a cidade da tabela do funcionário, ID do laptop e nome do laptop da tabela do laptop
SELECT EMP.EMPLOYEEID, EMP.FIRST_NAME, EMP.SALÁRIO, EMP.CITY, LAP.LAPTOPID, LAP. NOME DE EMPLOYEES EMP INNER JOIN LAPTOP LAP ON EMP.EMPLOYEEID =LAP.EMPLOYEEID;
Na consulta acima, buscamos o ID do funcionário, o primeiro nome, o salário, a cidade da tabela dos funcionários, o ID do laptop e o nome da tabela do laptop, onde o ID do funcionário da tabela do funcionário é igual ao ID do funcionário da tabela do laptop. O ID do funcionário é uma chave estrangeira na tabela Laptop, que cria um relacionamento pai-filho entre a tabela Employee e a tabela Laptop.
Saída:
EMPLOYEEID | FIRST_NAME | SALÁRIO | CIDADE | LAPTOPID | NOME |
1002 | VAIBHAV | 60.000 | NOIDA | L102 | HP |
3003 | DEEPAM | 58500 | MUMBAI | L104 | HP |
4002 | ASHWINI | 54500 | NOIDA | L105 | DELL |
4003 | RUCHIKA | 60.000 | DÉLHI | L106 | LENOVO |
5001 | ARQUIVO | 55500 | DÉLHI | L107 | DELL |
Apenas cinco registros de funcionários são exibidos.
Exemplo 4: Escreva uma consulta para exibir o ID do funcionário, o primeiro nome, o salário e o departamento da tabela de funcionários ID do gerente e o nome do gerente da tabela do gerente usando a junção interna em que salário> 55000 e departamento é Oracle.
SELECT EMPLOYEEID, FIRST_NAME, SALARY, DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE SALARY> 55000 AND DEPARTMENT ='ORACLE';
No exemplo de consulta de junção acima, exibimos os detalhes do funcionário, como id, nome, salário e departamento da tabela do funcionário, id do gerente e nome do gerente da tabela do gerente, onde o id do gerente da tabela dos funcionários é igual ao id do gerente de o gerente apenas os funcionários cujo salário é superior a 55.000 e departamento é Oracle.
Saída:
EMPLOYEEID | FIRST_NAME | SALÁRIO | DEPARTAMENTO | GERENTE | MANAGER_NAME |
1001 | VAIBHAVI | 65500 | ORACLE | 1 | Snehdeep Kaur |
2001 | PRAQUI | 55500 | ORACLE | 1 | Snehdeep Kaur |
4003 | RUCHIKA | 60.000 | ORACLE | 1 | Snehdeep Kaur |
Apenas três funcionários cujo salário é superior a 55.000 e o departamento é Oracle.
Exemplo 5: Execute uma consulta de junção na tabela Funcionários, Gerente e Laptop e exiba os detalhes dos funcionários, ID do gerente e ID do laptop.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, M.MANAGERID, L.LAPTOPID FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID INNER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID;
A consulta acima exibe o ID do funcionário, o nome, o sobrenome, o ID do gerente e o ID do laptop das tabelas de funcionários, gerente e laptop. Juntamos três mesas. O ID do funcionário é uma coluna comum entre os funcionários e a tabela do laptop e cria um relacionamento pai-filho entre essas três tabelas. Entre funcionários e gerentes, o ID do gerente da tabela é a coluna comum.
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | GERENTE | LAPTOPID |
4003 | RUCHIKA | AGARWAL | 1 | L106 |
3003 | DEEPAM | JAUHARI | 3 | L104 |
4002 | ASHWINI | BOLSA | 3 | L105 |
5001 | ARQUIVO | SHARMA | 4 | L107 |
1002 | VAIBHAV | SHARMA | 5 | L102 |
União Externa Esquerda
A junção externa esquerda retornará todos os registros da tabela no lado esquerdo da junção e os registros correspondentes para a tabela no lado direito da junção. O conjunto de resultados contém null para os registros que não são comuns no lado direito.
Sintaxe da junção externa esquerda:
SELECT Table_Name1.Colum_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 LEFT OUTER JOIN Table_Name2 ON Table_Name1.Column_Name =Table_Name2.Column_Name;
Considere as tabelas existentes, que possuem os seguintes registros:
Tabela 1:Funcionários
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | CIDADE | DEPARTAMENTO | GERENTE |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | C# | 5 |
1003 | NIQUIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRAQUI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | QUERER | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTE | 4 |
4002 | ASHWINI | BOLSA | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DÉLHI | ORACLE | 1 |
5001 | ARQUIVO | SHARMA | 55500 | DÉLHI | TESTE | 4 |
Tabela 2:Gerente
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTE |
5 | Akash Kadam | C# |
Tabela 3:Laptop
LAPTOPID | NOME | EMPREGADO |
L101 | DELL | NULO |
L102 | HP | 1002 |
L103 | LENOVO | NULO |
L104 | HP | 3003 |
L105 | DELL | 4002 |
L106 | LENOVO | 4003 |
L107 | DELL | 5001 |
L108 | HP | NULO |
L109 | DELL | NULO |
L110 | HP | NULO |
Exemplos de SQL Left Outer Join
Exemplo 1: Execute uma consulta de junção externa esquerda na tabela Employees e na tabela Laptop, onde exibe a ID do funcionário, o nome do funcionário e a ID do laptop.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FROM EMPLOYEES E LEFT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID;
Na consulta acima, exibimos o ID do funcionário, o primeiro nome, o sobrenome da tabela do ID do laptop do funcionário e o nome da tabela do laptop e realizamos uma consulta de junção externa esquerda nessas duas tabelas. A consulta retornará valores nulos no lado direito da tabela se as linhas não forem semelhantes entre as tabelas.
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LAPTOPID | NOME |
1001 | VAIBHAVI | MISHRA | NULO | NULO |
1002 | VAIBHAV | SHARMA | L102 | HP |
1003 | NIQUIL | VANI | NULO | NULO |
2001 | PRAQUI | SHARMA | NULO | NULO |
2002 | BHAVESH | JAIN | NULO | NULO |
2003 | RUCHIKA | JAIN | NULO | NULO |
3001 | PRANOTI | SHENDE | NULO | NULO |
3002 | ANUJA | QUERER | NULO | NULO |
3003 | DEEPAM | JAUHARI | L104 | HP |
4001 | RAJESH | GOUD | NULO | NULO |
4002 | ASHWINI | BOLSA | L105 | DELL |
4003 | RUCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARQUIVO | SHARMA | L107 | DELL |
Exemplo 2: Escreva uma consulta para buscar o ID do funcionário, nome, sobrenome, salário da tabela do funcionário à esquerda da junção externa na tabela do laptop onde salário> 55.000.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FROM EMPLOYEES E LEFT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID WHERE SALARY> 55000;
Na consulta acima, buscamos os detalhes do funcionário da tabela dos funcionários e os detalhes do laptop da tabela do laptop, mas apenas os detalhes do funcionário em que o salário é maior que 55.000. Realizamos a consulta de junção externa esquerda nessas duas tabelas. A consulta retornará valores nulos no lado direito da tabela se as linhas não forem semelhantes entre as tabelas.
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | LAPTOPID | NOME |
1001 | VAIBHAVI | MISHRA | 65500 | NULO | NULO |
1002 | VAIBHAV | SHARMA | 60.000 | L102 | HP |
2001 | PRAQUI | SHARMA | 55500 | NULO | NULO |
2002 | BHAVESH | JAIN | 65500 | NULO | NULO |
3001 | PRANOTI | SHENDE | 55500 | NULO | NULO |
3003 | DEEPAM | JAUHARI | 58500 | L104 | HP |
4001 | RAJESH | GOUD | 60500 | NULO | NULO |
4003 | RUCHIKA | AGARWAL | 60.000 | L106 | LENOVO |
5001 | ARQUIVO | SHARMA | 55500 | L107 | DELL |
União Externa Direita
A junção externa direita retornará todos os registros da tabela no lado direito da junção e os registros correspondentes da tabela no lado esquerdo da junção. O conjunto de resultados contém null para os registros que não são comuns no lado esquerdo.
Sintaxe da junção externa direita:
SELECT Table_Name1.Colum_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 RIGHT OUTER JOIN Table_Name2 ON Table_Name1.Column_Name =Table_Name2.Column_Name;
Exemplos de SQL Right Outer Join
Exemplo 1: Execute uma consulta de junção externa direita na tabela dos funcionários e na tabela do laptop, onde exibe o ID do funcionário, o nome dos funcionários.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FROM EMPLOYEES E Right OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID;
Na consulta acima, exibimos o ID do funcionário, o primeiro nome, o sobrenome da tabela do ID do laptop do funcionário e o nome da tabela do laptop e realizamos a consulta de junção externa direita nessas duas tabelas. A consulta retornará valores nulos no lado esquerdo da tabela se as linhas não forem semelhantes entre as tabelas.
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LAPTOPID | NOME |
NULO | NULO | NULO | L101 | DELL |
1002 | VAIBHAV | SHARMA | L102 | HP |
NULO | NULO | NULO | L103 | LENOVO |
3003 | DEEPAM | JAUHARI | L104 | HP |
4002 | ASHWINI | BOLSA | L105 | DELL |
4003 | RUCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARQUIVO | SHARMA | L107 | DELL |
NULO | NULO | NULO | L108 | HP |
NULO | NULO | NULO | L109 | DELL |
NULO | NULO | NULO | L110 | HP |
Exemplo 2: Escreva uma consulta para buscar id, nome e sobrenome do funcionário da tabela do funcionário. Junção externa direita na tabela do laptop onde o nome do laptop inclui uma das listas é Dell, HP.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FROM EMPLOYEES E RIGHT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID WHERE L.NAME IN (' DELL', 'HP');
Na consulta acima, exibimos os detalhes dos funcionários da tabela de detalhes do laptop do funcionário na mesa do laptop. Realizamos a consulta de junção externa correta nessas duas tabelas apenas para o funcionário cujo nome de laptop inclui uma das listas é Dell e HP. A consulta retornará valores nulos no lado esquerdo da tabela se as linhas não forem semelhantes entre as tabelas.
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LAPTOPID | NOME |
NULO | NULO | NULO | L101 | DELL |
1002 | VAIBHAV | SHARMA | L102 | HP |
3003 | DEEPAM | JAUHARI | L104 | HP |
4002 | ASHWINI | BOLSA | L105 | DELL |
5001 | ARQUIVO | SHARMA | L107 | DELL |
NULO | NULO | NULO | L108 | HP |
NULO | NULO | NULO | L109 | DELL |
NULO | NULO | NULO | L110 | HP |
União Externa Completa
Full Outer Join mescla o resultado de Left Outer Joins e Right Outer Join. Full Outer Join é o mesmo que Cross Join. Full Outer Joins retorna a saída, onde as linhas são comuns ou incomuns entre as tabelas.
Sintaxe da junção externa completa:
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLE1 FULL JOIN TABLE2;
Exemplo 1: Escreva uma consulta para exibir o ID do funcionário, primeiro nome, sobrenome do ID do gerente da tabela do funcionário full outer join Tabela do gerente em que o salário do funcionário é maior que 65.000.
SELECT EMPLOYEEID, FIRST_NAME, LAST_NAME, M.MANAGERID FROM EMPLOYEES FULL JOIN MANAGER M WHERE SALARY> 65000;
Na consulta acima, exibimos os detalhes dos funcionários e os detalhes do gerente da tabela de funcionários e gerentes em que o salário do funcionário é maior que 65.000 usando a junção total. Na íntegra, junte cada Linha da tabela do funcionário em cada Linha da tabela do gerente, ou seja, o produto cartesiano acontecerá. M * N
Saída:
EMPLOYEEID | FIRST_NAME | LAST_NAME | GERENTE |
1001 | VAIBHAVI | MISHRA | 1 |
1001 | VAIBHAVI | MISHRA | 2 |
1001 | VAIBHAVI | MISHRA | 3 |
1001 | VAIBHAVI | MISHRA | 4 |
1001 | VAIBHAVI | MISHRA | 5 |
2002 | BHAVESH | JAIN | 1 |
2002 | BHAVESH | JAIN | 2 |
2002 | BHAVESH | JAIN | 3 |
2002 | BHAVESH | JAIN | 4 |
2002 | BHAVESH | JAIN | 5 |
Como podemos ver, o ID de funcionário 1001 faz uma junção cruzada com cada ID de gerente, o mesmo que o ID de funcionário 2002.
Exemplo 2: Execute uma consulta de junção externa completa na tabela Employees e na tabela laptop, onde o salário do funcionário é maior que 60.000 e a localização do funcionário é Pune.
SELECT LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY FROM LAPTOP FULL JOIN EMPLOYEES E WHERE SALARY> 60000 AND CITY ='PUNE';
Na consulta acima, exibimos o ID do laptop, o ID do funcionário, o primeiro nome, o salário e a cidade dos funcionários de ingresso completo do laptop apenas aqueles cujo salário é maior que 60.000 e a cidade é Pune. Se ambas as condições corresponderem apenas ao funcionário, o registro será buscado.
Saída:
União cruzada
As junções cruzadas no SQL nada mais são do que chamadas de produto cartesiano. Cada Linha de uma tabela é combinada ou mesclada com cada Linha da outra tabela. M * N é junção cruzada
Sintaxe de junção cruzada:
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLE1 CROSS JOIN TABLE2;
Exemplo 1: Escreva uma consulta para executar a operação de junção cruzada na tabela de funcionários e na tabela de gerentes onde o primeiro nome do funcionário começa com A
SELECT EMPLOYEEID, FIRST_NAME, M.MANAGERID FROM EMPLOYEES CROSS JOIN MANAGER M WHERE FIRST_NAME LIKE 'A%';
No exemplo de consulta de junção externa completa acima, recuperamos os detalhes do funcionário e os detalhes do gerente da tabela de funcionários e da tabela de gerentes, mas apenas os registros em que o primeiro nome do funcionário começa com a letra 'A'.
Saída:
O resultado mostra que o ID do funcionário é uma junção cruzada com cada linha do ID do gerente.
M * N Aqui, M =3; ID de funcionário das tabelas de funcionários
N =5; ID do gerente da tabela do gerente 3 * 5 =15 linhas.
Exemplo 2: Escreva uma consulta para executar a operação de junção cruzada na tabela do laptop e na tabela de funcionários onde o salário do funcionário é maior que 58.000 e Mumbai.
SELECT LAPTOPID, NAME, E.EMPLOYEEID FROM LAPTOP CROSS JOIN EMPLOYEES E WHERE SALARY> 58000 AND CITY ='MUMBAI';
Na consulta acima, exibimos o ID do laptop, o nome e o ID do funcionário da tabela do laptop para realizar a operação de junção cruzada na tabela dos funcionários onde o salário do funcionário é maior que 58.000 e a cidade é Pune. A junção cruzada funciona como M * N.
Saída: