• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

beto_88

problema (select)

16 mensagens neste tópico

BOAS

quero fazer um select que quando guardar aparecer-me na DataGrid o Nome do cliente e o Nome do cao em ves do ID_cao e ID_cliente que me está agora a aparecer na DataGrid

Tenho assim mas não está a funcionar  :thumbsup:

"SELECT ID_adopcao,(SELECT Nome_cao FROM Caes WHERE ID_cao=ID_cao FROM Adopcao), (SELECT Nome_Cliente FROM Clientes WHERE ID_cliente=ID_cliente FROM Adopcao) FROM Adopcao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tem de ser +/- assim mas não faço ideia como tens a tabelas ligadas entre si


SELECT ID_adopcao, Nome_cao, Nome_Cliente
FROM Caes, Adopcao, Clientes
WHERE nomedatabela.ID_cliente=nomedatabela.ID_cliente
AND caes.ID_cao=adopcao.ID_cao
AND ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Há no forum um quadro específico para bases de dados, talvez devesses colocar lá a dúvida...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tem de ser +/- assim mas não faço ideia como tens a tabelas ligadas entre si

PauloR está aqui as minha relacoes

ai na tabela adopcao esquece a quantidade porque isso fui eu que me enganei a inserir esse campo  :P

tabelasl.png

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta assim, não experimentei mas deve ser qq coisa do genero.

select t1.id_adopcao, t2.nome_cliente, t3.nome_cao

from adopcao t1

inner join (

select id_cliente, nome_cliente

from clientes

) t2

on t1.id_cliente = t2.id_cliente

inner join (

select id_cao, nome_cao

from caes

) t3

on t1.id_cao = t3.id_cao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tem de ser +/- assim mas não faço ideia como tens a tabelas ligadas entre si

Código: [select]

SELECT ID_adopcao, Nome_cao, Nome_Cliente

FROM Caes, Adopcao, Clientes

WHERE nomedatabela.ID_cliente=nomedatabela.ID_cliente

AND caes.ID_cao=adopcao.ID_cao

AND ...

nao funciona PauloR  obrigado na mesma :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim é mais simples  :P

SELECT ID_Adopcao, Nome_cao, Nome_cliente
FROM adopcao, caes, clientes
WHERE caes.id_cao = adopcao.id_cao
and adopcao.id_cliente = clientes.id_cliente

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

select t1.id_adopcao, t2.nome_cliente, t3.nome_cao
from adopcao t1
inner join (
select id_cliente, nome_cliente
from clientes
) t2
on t1.id_cliente = t2.id_cliente
inner join (
select id_cao, nome_cao
from caes
) t3
on t1.id_cao = t3.id_cao

Acho que não vai funcionar porque logo de inicio ai ta select t1.id_adopcao, t2.nome_cliente, t3.nome_cao from adopcao t1  ..... e o Nome_cao e Nome_cliente não estão na tabela Adopcao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Assim é mais simples 

Código: [select]SELECT ID_Adopcao, Nome_cao, Nome_cliente

FROM adopcao, caes, clientes

WHERE caes.id_cao = adopcao.id_cao

and adopcao.id_cliente = clientes.id_cliente

Dá-me erro de sintaxe na Operação JOIN  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dá-me erro de sintaxe na Operação JOIN  :P

Qual Join?  :hmm:

Coloca ai o codigo e o erro completo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tamem pergunto o mesmo qual JOIN  :P

Dim comandosql = "SELECT ID_Adopcao, Nome_cao, Nome_cliente FROM(Adopcao, Caes, Clientes) WHERE(Caes.ID_cao = Adopcao.ID_cao) AND Adopcao.ID_cliente = Clientes.ID_cliente"
        Dim cmd As New OleDbCommand(comandosql, db)

        Dim dtr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

errrrrooooooo.png

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tamem pergunto o mesmo qual JOIN  :P

Dim comandosql = "SELECT ID_Adopcao, Nome_cao, Nome_cliente FROM(Adopcao, Caes, Clientes) WHERE(Caes.ID_cao = Adopcao.ID_cao) AND Adopcao.ID_cliente = Clientes.ID_cliente"
        Dim cmd As New OleDbCommand(comandosql, db)

        Dim dtr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

Tiras os "(" e ")" ...

coloca assim:

Dim comandosql = "SELECT ID_Adopcao, Nome_cao, Nome_cliente FROM Adopcao, Caes, Clientes WHERE Caes.ID_cao = Adopcao.ID_cao AND Adopcao.ID_cliente = Clientes.ID_cliente"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiras os "(" e ")" ...

coloca assim:

Dim comandosql = "SELECT ID_Adopcao, Nome_cao, Nome_cliente FROM Adopcao, Caes, Clientes WHERE Caes.ID_cao = Adopcao.ID_cao AND Adopcao.ID_cliente = Clientes.ID_cliente"

JA TA OBRIGADAO MESMO  :P:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora