Preciso escrever uma consulta que selecione os nomes de todos os funcionários e os nomes de seus chefes. Se não houver chefe para um funcionário, retorne NULL. Os chefes também são considerados funcionários.
Mesa:
CREATE TABLE employees (
id INTEGER NOT NULL PRIMARY KEY,
bossId INTEGER,
name VARCHAR(20) NOT NULL,
FOREIGN KEY (bossId) REFERENCES employees(id)
);
INSERT INTO employees(id, bossId, name) VALUES(1, NULL, 'Fred');
INSERT INTO employees(id, bossId, name) VALUES(2, 1, 'Jason');
INSERT INTO employees(id, bossId, name) VALUES(3, 1, 'Mike');
Resultado esperado:
nome | chefe |
---|---|
Fred | |
Jasão | Fred |
Mike | Fred |
Você precisa de junção esquerda, se o funcionário não tiver um chefe, mostre nulo na saída
select emp.name,empBoss.name
from employees emp
left join employees empBoss
on emp.bossId = empBoss.id
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras