considerando que o tipo da colulna ‘secao’ seja null na tabela funcionario
SELECT d.descricao, s.descricao, f.nome FROM funcionarios f INNER JOIN secao s ON f.secao = s.codigo INNER JOIN diretoria d ON = s.diretoria = d.diretoria WHERE f.secao == NOT NULL;
obs: ñ testei talvez ñ funcione, faça as adaptações necessárias
[quote=rafaduka]considerando que o tipo da colulna ‘funcao’ seja null na tabela funcionario
SELECT d.descricao, s.descricao, f.nome FROM funcionarios f INNER JOIN secao s ON f.secao = s.codigo INNER JOIN diretoria d ON = s.diretoria = d.diretoria WHERE f.secao == NOT NULL;
obs: ñ testei talvez ñ funcione, faça as adaptações necessárias[/quote]
Olha, não funcionou do jeito que eu esperava, mas da onde voce tirou a funcao ?
É pra mostra as infos dos funcionarios que possuam alguma diretoria/secao…
Alias, funcionou até mais voce acha que é isto mesmo que o exercicio quer ?
O resultado do seu é igual ao resultado da SQL que eu postei ali em cima.
O segundo teste que eu fiz, ficou asssim: SELECT diretoria.descricao, secao.descricao, funcionario.nome FROM funcionario INNER JOIN secao ON funcionario.secao = secao.codigo INNER JOIN diretoria ON secao.diretoria = diretoria.codigo;
que resulta no mesmo do: SELECT diretoria.descricao,secao.descricao , funcionario.nome FROM funcionario INNER JOIN (diretoria JOIN secao ON secao.diretoria = diretoria.codigo) ON funcionario.secao = secao.codigo AND diretoria.codigo = secao.diretoria;
‘–’… Mas vcs acham que é isso mesmo a resposta desse problema ( usando JOIN ) ?
[quote=Vinicius Zibetti Resko]O segundo teste que eu fiz, ficou asssim: SELECT diretoria.descricao, secao.descricao, funcionario.nome FROM funcionario INNER JOIN secao ON funcionario.secao = secao.codigo INNER JOIN diretoria ON secao.diretoria = diretoria.codigo;
que resulta no mesmo do: SELECT diretoria.descricao,secao.descricao , funcionario.nome FROM funcionario INNER JOIN (diretoria JOIN secao ON secao.diretoria = diretoria.codigo) ON funcionario.secao = secao.codigo AND diretoria.codigo = secao.diretoria;
‘–’… Mas vcs acham que é isso mesmo a resposta desse problema ( usando JOIN ) ?[/quote]
Oi,
Acho que está correto. O resultado deve ser o mesmo do select sem usar JOIN.
[quote=lina][quote=Vinicius Zibetti Resko]O segundo teste que eu fiz, ficou asssim: SELECT diretoria.descricao, secao.descricao, funcionario.nome FROM funcionario INNER JOIN secao ON funcionario.secao = secao.codigo INNER JOIN diretoria ON secao.diretoria = diretoria.codigo;
que resulta no mesmo do: SELECT diretoria.descricao,secao.descricao , funcionario.nome FROM funcionario INNER JOIN (diretoria JOIN secao ON secao.diretoria = diretoria.codigo) ON funcionario.secao = secao.codigo AND diretoria.codigo = secao.diretoria;
‘–’… Mas vcs acham que é isso mesmo a resposta desse problema ( usando JOIN ) ?[/quote]
Oi,
Acho que está correto. O resultado deve ser o mesmo do select sem usar JOIN.
Tchauzin![/quote]
Bom, não tenho certeza, acho que isso depende do banco de dados.
Sei que o Oracle não é necessario o uso de JOIN, somente realizando as ligações entre tabelas através do WHERE.
Ja no Mysql, o uso de JOIN torna-se necessario.