Sim, o Oracle suporta o comando `interna junção`. É usado como em outros bancos de dados SQL para combinar linhas de duas ou mais tabelas com base em uma coluna relacionada entre elas. Somente linhas que possuem valores correspondentes em ambas as tabelas estão incluídas no conjunto de resultados.
Aqui está a sintaxe básica:
`` `SQL
Selecione Column_Name (s)
Da Tabela 1
JONE INNER Tabela 2 na tabela1.column_name =tabela2.column_name;
`` `
Você também pode usar a sintaxe mais antiga e mais detalhada `junção ', que é funcionalmente equivalente a` interna junção':
`` `SQL
Selecione Column_Name (s)
Da Tabela1, Tabela2
Onde tabela1.column_name =tabela2.column_name;
`` `
Enquanto isso funciona, a sintaxe `interna junção` é preferida por legibilidade e clareza, especialmente em consultas complexas envolvendo várias junções. A palavra -chave `junção` é geralmente evitada nas práticas modernas de codificação do SQL.
Exemplo:
Digamos que você tenha duas tabelas:'funcionários' e `departamentos '.
Tabela de funcionários: | funcionário_id | nome | departamento_id |
| ---------------- | ----------- | ---------------- |
| 1 | John Doe | 10 |
| 2 | Jane Doe | 20 |
| 3 | David Lee | 10 |
Tabela de departamentos: | departamento_id | nome |
| ---------------- | ------------- |
| 10 | Vendas |
| 20 | Marketing |
| 30 | Engenharia |
Uma consulta `interna junção` para recuperar os nomes dos funcionários e seus nomes de departamento ficariam assim:
`` `SQL
Selecione funcionários.name, departamentos.name
De funcionários
Departamentos internos de junção em funcionários.department_id =departamentos.department_id;
`` `
Isso retornaria:
| nome | nome |
| ------------- | ------------- |
| John Doe | Vendas |
| Jane Doe | Marketing |
| David Lee | Vendas |
Somente os funcionários que têm um `departamento_id combinados em ambas as tabelas estão incluídos no resultado. Os funcionários não designados para um departamento na tabela `departamentos ', ou departamentos sem funcionários da tabela de' funcionários ', não seriam incluídos.