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,
TabelaPedidos p
WHERE f.codigodofuncionario = p.codigodofuncionario
AND p.codigodofuncionario = 9
Dá uma olhada pra ver se isso não te ajuda…
W
wire
muito obrigado funcionou forma mais facil ne valeu mesmo nao querendo ser xato vc sabe como fazer com subselect valeu mesmo
joaosouza
Opa,
Segue abaixo um exemplo com SubQuery…
SELECT f.nome
FROM TabelaFuncionarios f
WHERE f.codigodofuncionario IN
(SELECT p.codigodofuncionario FROM TabelaPedidos p WHERE p.codigodofuncionario = 9)
W
wire
joaosouza valeu mesmo muito obrigado
W
wire
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
fredferrao
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