Juntar 3 Tabelas em numa Query ...
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 ...
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
Curtidas 0
Respostas
Lucas Silva
10/03/2004
você tem que fazer [b:f18ac67918]join´s[/b:f18ac67918] entre as tabelas.;...
e qual o erro que está dando?
e qual o erro que está dando?
GOSTEI 0
Giovani
10/03/2004
[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...
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...
GOSTEI 0
Fabio.hc
10/03/2004
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.
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.
GOSTEI 0
Giovani
10/03/2004
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?
GOSTEI 0
Cabelo
10/03/2004
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
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
GOSTEI 0
Giovani
10/03/2004
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 ...
GOSTEI 0
Kyonak
10/03/2004
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 ...
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 ...
GOSTEI 0
Lucas Silva
10/03/2004
Deu Certo, mais os Dados estão se repetindo.
Isso é o típico erro de falta de join..... coloca o seu sql ai...
GOSTEI 0
Cabelo
10/03/2004
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
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
GOSTEI 0
Kyonak
10/03/2004
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.
GOSTEI 0
Cabelo
10/03/2004
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
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
GOSTEI 0
Mlnascimento
10/03/2004
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:
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:
GOSTEI 0