O SQL RIGHT JOIN Inclui todas as linhas da tabela da direita e as que coincidem a partir da esquerda. Para que isso não corresponda a partir da direita, NULL é retornado nas colunas correspondentes.
Esta é a diferença chave entre um SQL RIGHT JOIN e um INNER JOIN. Quando uma união interna só retorna linhas que correspondem à condição de união, em uma união externa direita, é garantido que todas as linhas da tabela direita estão incluídas no resultado.
Cheque esta ilustração:
Cheque os resultados para Fred e note que não há produto correspondente, é NULL. Além disso, o não está incluído no resultado.
Outro nome para união direita é união externa direita.
A forma geral de união à direita é:
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Notas:
- Neste exemplo a tabela2 é a tabela da direita e a tabela1 a da esquerda.
- Se não houver correspondência entre os valores das colunas comuns, a tabela1.column1 retorna NULL
SQL RIGHT JOIN Example
Nem todas as pessoas da base de dados AdventureWorks são empregados. Vamos listar todas as pessoas, e alguns dos seus dados de emprego, caso existam. Usaremos um RIGHT JOIN para fazer isso.
Cutem em mente que é um JOGO DIREITO, pois a tabela de pessoas, que tem cada linha que desejamos retornar, está do lado direito do operador do JOGO.
-Lista os resultados e repare que existem NULL’s para algumas pessoas. Isto porque não há entradas correspondentes na tabela Empregado. O RIGHT JOIN está trabalhando como anunciado, devolve todos os jogos, e um NULL onde não existe nenhum.
Pontos Importantes:
Ao trabalhar com o RIGHT JOINS tenha em mente que a sua correspondência de uma tabela para outra pode corresponder a várias linhas. Ou seja, o seu resultado pode ter mais linhas no resultado que você tem em qualquer uma das tabelas.
Quando as colunas não coincidem, a consulta a linha direita, e NULL para as colunas da tabela esquerda.