Questão FC871654
Uma base possui a tabela servidores, com as colunas id_servidor, nome e id_setor, e a tabela setores, com as colunas id_setor e nome_setor. Deseja-se listar o nome de cada servidor
Sem classificação
FUNDATEC · 2026
Uma base possui a tabela servidores, com as colunas id_servidor, nome e id_setor, e a tabela setores, com as colunas id_setor e nome_setor. Deseja-se listar o nome de cada servidor junto com o nome do respectivo setor, incluindo também os servidores que ainda não possuem setor associado. Qual consulta SQL é mais apropriada?
- SELECT servidores.nome, setores.nome_setor FROM servidores INNER JOIN setores ON servidores.id_setor = setores.id_setor;
- SELECT servidores.nome, setores.nome_setor FROM servidores LEFT JOIN setores ON servidores.id_setor = setores.id_setor;
- SELECT servidores.nome, setores.nome_setor FROM servidores RIGHT JOIN setores ON servidores.id_servidor = setores.id_setor;
- SELECT nome, nome_setor FROM servidores GROUP BY id_setor;
- SELECT servidores.nome, setores.nome_setor FROM servidores ORDER BY setores.nome_setor;
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A instrução seleciona explicitamente as duas colunas desejadas: servidores.nome e setores.nome_setor, garantindo que a origem de cada campo esteja clara.
O uso de LEFT JOIN faz com que todos os registros da tabela à esquerda (servidores) sejam mantidos no resultado, mesmo quando não existe correspondência na tabela setores. Para servidores sem setor associado, o campo do setor virá como NULL.
A cláusula ON define a condição de junção: servidores.id_setor = setores.id_setor. Essa igualdade relaciona cada servidor ao seu respectivo setor quando houver correspondência.
Mantenha cuidado com filtros na cláusula WHERE, pois condições que testem campos da tabela de setores podem eliminar as linhas sem correspondência e anular o efeito do LEFT JOIN.
Conteúdo do catálogo FC Concursos · Atualizado em