O documento discute vários tipos de joins entre tabelas em SQL, incluindo produto cartesiano, inner join, left join, right join e full join. Também cobre alias de tabelas e operadores de união como UNION, INTERSECT e MINUS para combinar resultados de consultas SQL.
3. Produto Cartesiano
O produto cartesiano é a associação N:N entre duas
tabelas;
Para juntar duas tabelas bastará fazer:
SELECT *
FROM pessoa, localidade
O resultado será o produto cartesiano dos dois conjuntos.
O produto cartesiano entre as tabelas pessoa e localidade
associa a cada linha da tabela pessoa o conjunto das
linhas da tabela localidade.
4. JOIN
O Conceito de JOIN (ligação) entre tabelas permite
extrair, num único SELECT, informação contida em
diferentes tabelas.
JOIN utilizando WHERE
INNERJOIN
LEFTJOIN
RIGHTJOIN
5. INNER JOIN
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
or:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
6. RIGHT JOIN
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
ou
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
7. LEFT JOIN
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
or:
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;
9. Juntado Tabelas Com
Clausula WHERE
A forma mais utilizada para se juntar tabelas é utilizando
apenas a clausula WHERE.
No entanto é preciso ter cuidado, colocando todas as
condições necessárias para obter o resultado correcto.
SELECT *
FROM pessoa, localidade
WHERE códigoLocal = código
10. ALIAS de tabelas
Se os campos de seleção ou junção de duas tabelas
tiverem o mesmo nome, então para eliminar
quaisquer ambiguidades, cada um dos campos deve
ser precedido do nome da tabela, seguido de um
ponto.
O nome de uma tabela pode ser reduzido ou
alterado num SELECT, através da utilização de um
ALIAS que deve ser colocado à frente da tabela e que
passará a ser uma outra forma de identificar a tabela.
11. Misturando SELECT
Existe a possibilidade de “Misturar” vários selects e
no final ter apenas um.
Para isso utiliza-se os seguintes operadores da teoria
de conjuntos
UNION
INTERSECT
MINUS
12. UNION
Permite fazer a reunião entre SELECTs.
O número de campos a selecionar em cada um dos
comandos SELECT tem de ser igual.
Nota: Numa UNION, o nome das colunas
apresentado no resultado é o nome das colunas
selecionadas na primeira instrução SELECT.
Cada SELECT pode conter a sua própria cláusula
WHERE. No entanto, só poderá existir uma única
cláusula ORDER BY no último SELECT, sendo a
ordenação aplicada a todo o resultado.
13. INTERSECT
Permite fazer a Intersecção entre SELECTs
O Operador INTERSECT permite juntar o conteúdo
de dois comandos SELECT, apresentando apenas as
linhas que resultam de ambos os comandos.
Nota: O operador INTERSECT só é suportado pelo
ORACLE.
14. MINUS
Permite Subtrair dois SELECTs
Devolve os registos que resultam do primeiro
SELECT e que não aparecem no segundo
Nota: O operador MINUS só é suportado pelo
ORACLE.