Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

guto_melo

Tenho duas tabelas e preciso mostrar informação

Recommended Posts

Pessoal, bom dia!!!Tenho duas tabelas.. Artigo e Autor e os campos:Tabela Artigo: Art_id, Art_autor (numero), etc..Tabela Autor: Aut_id, Aut_nomeAo mostrar os dados dos artigos o campo Art_autor mostra por exemplo o numero 5, que é referente ao Aut_id da tabela Autor.O que eu preciso é que mostre o que esta no campo Aut_nome.Exemplo:Aut_id: 5Aut_nome: gustavoQuando abrir um artigo que tenha no campo Art_autor o numero 5, ao invés de mostrar o 5 que verifique na tabela Autor quem é o 5 e mostre o nome.Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O uso do INNER JOIN na instrução SQL como o AAlves fez já resolve os problemas de relação entre as tabelas. Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

As tabelas estão relacionadas sim e funcionou perfeitamente.

Ficou desta forma:

"SELECT Artigos.Art_data, Artigos.Art_publica, Artigos.Art_id, Artigos.Art_autor, Autor.Auto_id, Autor.Auto_nome FROM Autor INNER JOIN Artigos ON Autor.Auto_id = Artigos.Art_autor WHERE Artigos.Art_publica = 1 ORDER BY Artigos.Art_data DESC"

Muito obrigado a todos..

 

Preciso tambem fazer um "filtro" para mostrar todos os artigos publicados da tabela Artigos e que o campo Categoria.Cat_tipo seja igual a artigos que esta na tabela Categoria.

Os campos relacionados são: Artigos.Art_categoria com Categoria.Cat_nome

Se for usar o mesmo exemplo acima ficaria assim:

"SELECT Artigos.Art_data, Artigos.Art_id, Artigos.Art_autor, Artigos.Art_publica, Categoria.cat_nome, Categoria.cat_tipo FROM Artigos INNER JOIN Categoria ON Artigos.Art_categoria = Categoria.cat_nome WHERE Artigos.Art_publica = 1 AND Categoria.cat_tipo = 'artigos' ORDER BY Artigos.Art_data DESC"

 

Tentei colocar na mesma consulta fazendo dentro do INNER JOIN mas retorna erro.. provavelmente de sintaxe.

Se alguem tiver alguma ideia.. eu agradeço muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro que retorna ??

isso mesmo posta o erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Error Type:

Microsoft JET Database Engine (0x80040E14)

Syntax error in FROM clause.

 

"SELECT Artigos.Art_categoria, Categoria.cat_nome, Categoria.cat_tipo, Artigos.Art_id, Artigos.Art_autor, Artigos.Art_publica, Autor.Auto_id, Autor.Auto_nome FROM Autor INNER JOIN Artigos, Categoria ON Autor.Auto_id = Artigos.Art_autor AND Artigos.Art_categoria = Categoria.cat_nome WHERE Artigos.Art_publica = 1 Categoria.cat_tipo = 'artigos' ORDER BY Artigos.Art_id DESC"

 

Esta é a consulta que tentei fazer!

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que o erro é aquiFROM Autor INNER JOIN Artigos, Categoriavocê esta tentando juntar uma tabela a outras duas com inner join, ai num dá...se precisa mesmo juntar tres terá de fazer inner join com inner join

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que o erro é aqui

 

FROM Autor INNER JOIN Artigos, Categoria

 

você esta tentando juntar uma tabela a outras duas com inner join, ai num dá...

 

se precisa mesmo juntar tres terá de fazer inner join com inner join

<{POST_SNAPBACK}>

No caso faria uma sub-consulta ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você realmente quer relacionar tres tabelas ou não??

Compartilhar este post


Link para o post
Compartilhar em outros sites

você realmente quer relacionar tres tabelas ou não??

<{POST_SNAPBACK}>

Acho que seria a melhor forma para listar somente os dados que preciso.

Tabelas: Artigos, Autor e Categoria

Relacionamentos: Art_categoria com cat_nome e Art_autor com Auto_id

 

Mostre todos registros da tabela Artigos que:

Artigos.Art_categoria = Categoria.Cat_nome

e no WHERE Categoria.cat_nome="artigos"

e mostre o nome dos autores que estão em Autor.Auto_nome sendo:

Artigos.Art_autor = Autor.Auto_id

No WHERE também tem que ter Artigos.Art_publica = 1

Não sei como fazer isso.... se tiver alguma outra ideia.. agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara então você faria dois inner jointipo assimSELECT TAB1.CAMPO1, TAB1.CAMPO2, TAB2.CAMPO1, TAB2.CAMPO2, TAB3.CAMPO1, TAB3.CAMPO2FROM (TAB1 INNER JOIN TAB2 ON TAB1.CAMPO1 = TAB2.CAMPO2) INNER JOIN TAB3 ON TAB2.CAMPO1 = TAB3.CAMPO2

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara então você faria dois inner join

 

tipo assim

 

SELECT TAB1.CAMPO1, TAB1.CAMPO2, TAB2.CAMPO1, TAB2.CAMPO2, TAB3.CAMPO1, TAB3.CAMPO2

FROM (TAB1 INNER JOIN TAB2 ON TAB1.CAMPO1 = TAB2.CAMPO2) INNER JOIN TAB3 ON TAB2.CAMPO1 = TAB3.CAMPO2

<{POST_SNAPBACK}>

marioufpa, obrigado !! Funcionou perfeito!! Valeu! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

marioufpa, obrigado !! Funcionou perfeito!! Valeu! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

opa...de nada cara...precisando estamos na area.... http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.