Ola e que to fazendo alguns exercício de sql serve tem uma questão que precisa de um subselect e para apresentar todos os nomes dos funcionários do que tenha o código 9 e todos os pedidos feitos por ele comando que fiz foi esse
select nome from funcionários where códigodofuncionário in (select códigodofuncionário from pedidos where códigodofuncionário = 9)
mas da erro de sixtaxe falando que não aceita esses tipos de operador com =,< etc algum pode me ajudar Obrigado
SELECT f.nome
FROM TabelaFuncionarios f
WHERE f.codigodofuncionario IN
(SELECT p.codigodofuncionario FROM TabelaPedidos p WHERE p.codigodofuncionario = 9)
Ola eu denovo e que eu executei esse subselect fico assim
select f.nome,p.númerodopedido
from funcionários f,pedidos p
where f.códigodofuncionário in
(select p.códigodofuncionário from pedidos p where p.códigodofuncionário = 9)
mas agora ele repete todos os registro com o código número 9 e ta substituindo todos os registro pelo código número 9, se puder me dar uma ajuda agradeço valeu pelas suas resposta
Faça o select pela tabela pedidos, ela deve ser a master, e pelo amor, estamos em 2010 e ninguem usa os “JOINS”, eu uso desde 1999, acho sofrivel misturar a logica de filtragem com os joins entre tabelas tudo na clausula WHERE.
select f.nome, p.numeropedido from pedidos p
left join funcionarios f on(f.codigofuncionario = p.codigofuncionario)
where p.codigofuncionario = 9
Bom o fato é que neste caso ficou sem subselect, se era esta a necessidade, mas tu ja aprendeu como faz subselect certo