Fórum Juntar 3 Tabelas em numa Query ... #219596

10/03/2004

0

E aí galera .

Estou precisando juntar 3 tabelas para imprimir a junção dessas tabelas, porém quando junto 2 tabelas o resultado é satisfatório, mas quando tentei juntar 3 tabelas não obtive sucesso, para juntar as 2 tabelas fiz assim:
Select * From Licitacao,FirmaNaLicitacao

para juntar 3 tabelas tentei assim:
Select * From Licitacao,FirmaNaLicitacao,ItensDaLicitacao

porém não deu certo. Será que estou fazendo errado?

obrigado ...


Giovani

Giovani

Responder

Posts

10/03/2004

Lucas Silva

você tem que fazer [b:f18ac67918]join´s[/b:f18ac67918] entre as tabelas.;...

e qual o erro que está dando?


Responder

Gostei + 0

10/03/2004

Giovani

[quote:03682df49c=´Lucas Alves Silva´]você tem que fazer [b:03682df49c]join´s[/b:03682df49c] entre as tabelas.;...

e qual o erro que está dando?[/quote:03682df49c]

erro não está dando, simplesmente não lista os resultados com 3 tabelas, mas com 2 tabelas dá certo...

me dá um exemplo de join entre tabelas. falou...


Responder

Gostei + 0

10/03/2004

Fabio.hc

Vc tem que colocar WHERE.

Ex:
Select * From Licitacao,FirmaNaLicitacao,ItensDaLicitacao
[b:13f15f71e8]WHERE Licitacao.codigo = FirmaNaLicitacao.codigo
and Licitacao.itens = ItensDaLicitacao.codigo[/b:13f15f71e8]

vc coloca os nomes dos campos de ligação das tabelas.


Responder

Gostei + 0

10/03/2004

Giovani

Vc tem que colocar WHERE. Ex: Select * From Licitacao,FirmaNaLicitacao,ItensDaLicitacao [b:a8c653df80]WHERE Licitacao.codigo = FirmaNaLicitacao.codigo and Licitacao.itens = ItensDaLicitacao.codigo[/b:a8c653df80] vc coloca os nomes dos campos de ligação das tabelas.



Continua não aparecendo os Valores.

Não teria outra maneira de unir estas 3 tabelas numa consulta Query?


Responder

Gostei + 0

10/03/2004

Cabelo

tente assim:

Select * From Licitacao,FirmaNaLicitacao,ItensDaLicitacao
WHERE Licitacao.CodigoFirma = FirmaNaLicitacao.codigo
and Licitacao.Codigoitens = ItensDaLicitacao.codigo

se não der certo..

veja se há dados compatíveis nas tabelas..

isto é se há campos para relacionamento entre estas três tabela..

se houver, são os campos do select que não estão corretos..

então altere os campos relacionais das tabelas em seu select

sem mais

Cabelo


Responder

Gostei + 0

10/03/2004

Giovani

tente assim: Select * From Licitacao,FirmaNaLicitacao,ItensDaLicitacao WHERE Licitacao.CodigoFirma = FirmaNaLicitacao.codigo and Licitacao.Codigoitens = ItensDaLicitacao.codigo se não der certo.. veja se há dados compatíveis nas tabelas.. isto é se há campos para relacionamento entre estas três tabela.. se houver, são os campos do select que não estão corretos.. então altere os campos relacionais das tabelas em seu select sem mais Cabelo



Deu Certo, mais os Dados estão se repetindo. Ex:

Estão aparecendo várias vezes a mesma Firma. Eu acho que a consulta com o WHERE é que está fazendo a repetição. Como seria uma consulta para que os dados não se repitam?

Valeu ...


Responder

Gostei + 0

10/03/2004

Kyonak

verifique se existe dados diferentes entre essas linhas
por exemplo
vc em 2 linhas
com nome Fulano só que a data eh diferente aí aparece 2 mesmo
mas se estiver tudo idêntico use o DISTINCT

select distinct campo 1, campo 2 ...


Responder

Gostei + 0

10/03/2004

Lucas Silva

Deu Certo, mais os Dados estão se repetindo.


Isso é o típico erro de falta de join..... coloca o seu sql ai...


Responder

Gostei + 0

10/03/2004

Cabelo

cara é o seguinte..

esta faltando algum relacionamento na clausula where..

para saber te responder preciso que vc poste os campos das tabelas aqui..

respectivamente com seu sql..

assim poderei te ajudar masi..

Cabelo


Responder

Gostei + 0

10/03/2004

Kyonak

cara é o seguinte.. esta faltando algum relacionamento na clausula where.. para saber te responder preciso que vc poste os campos das tabelas aqui.. respectivamente com seu sql.. assim poderei te ajudar masi.. Cabelo


Cabelo, é só olhar as tabelas dele, a tabela itensdalicitação indica q uma licitação tem mais de 1 item, ou seja os registros vao se repetir, aí nao tem jeito, nem distinct quebra o galho dele.


Responder

Gostei + 0

10/03/2004

Cabelo

Uma saída para isso é vc fazer um master/detail..

insira um grid para os iten da licitação, sendo esse o detail.
O master vc pode criar a partir da tabela Firma..

esse então seria o cabeçalho..

quando vc selecionar outra firma ele iria mudando os itens de acordo com a firma..

assim :

select * from ItensLicitacao where Itenslicitacao.codigofirma = codigo da firam que vc está selecionando..

assim funciona..

té +

Cabelo


Responder

Gostei + 0

10/03/2004

Mlnascimento

Veja se issso resolve seu problema.

SELECT*
FROM LICITACAO
INNER JOIN LICITACAO
ON (LICITACAO.CAMPO = FIRMANALICITACAO.CAMPO)
INNER JOIN ITENSDALICITACAO
ON (FIRMANALICITACAO.CAMPO = ITENSNALICITACAO.CAMPO)

Marcelo Nascimento
mlnascimento@celpe.com.br :shock:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar