Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Varios INNER JOIN numa consulta


Webster

Pergunta

Ola,

Sempre gostei de programação, mas como falta tempo, nunca pude estudar. Então tomei contato com Ms-Access e desenvolvi diversas aplicações interessantes. Porém agora gostaria de sair das aplicações domésticas e me iniciar no PHP/MySQL.

Meu site é de arqueologia e tenho uma tabela de conteúdo que contem referência a outras tabelas pelo campo chave. Por exemplo:

content.* <----- É a tabela que contém os campos Título, Conteúdo e URL das imagens, porém também contém o id_cat e id_povos

cat.* <----- É a tabela aonde está o id_cat e a descrição da categoria

povos.* <----- É a tabela aonde está o id_povos, o id_regiao e a descrição da Civilização

regiao.* <----- É a tabela em que se encontra o id_regiao e a descrição da região geográfica do achado

A partir da tabela content.* preciso que a consulta retorne a descrição do id_regiao, do id_povos e do id_cat

Estive pesquisando e me parece que isto é possível através do método INNER JOIN. Porém não consegui encadear vários INNER JOIN como eu conseguia fazer no Access. No Access a sintaxe seria a seguinte:

SELECT regiao.reg, povos.povos, cat.categoria, content.titulo, content.content

FROM cat INNER JOIN (regiao INNER JOIN (povos INNER JOIN content ON povos.id_povos = content.povos) ON regiao.id_regiao = povos.regiao) ON cat.id_cat = content.categoria;

Desde já agradeço o empenho!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Deveria ficar assim ó:

Região:     Categoria:   Povo:  
(id_regiao) (id_cat)       (id_povos)
_________________________________________
Africa      Arquitetura    Egípcio
Africa      Ciencia        Egípcio
Africa      Religiao       Egipcio
Am Central  Arquitetura    Maya
Am Central  Arquitetura    Olmeca
Am Central  Arquitetura    Asteca
Am Central  Arquitetura    Totonaca

Editado por Denis Courcy
Melhorar entendimento da tabela
Link para o comentário
Compartilhar em outros sites

  • 0

Oi,

Deveria ficar assim ó:

Região:     Categoria:   Povo:  
(id_regiao) (id_cat)       (id_povos)
_________________________________________
Africa      Arquitetura    Egípcio
Africa      Ciencia        Egípcio
Africa      Religiao       Egipcio
Am Central  Arquitetura    Maya
Am Central  Arquitetura    Olmeca
Am Central  Arquitetura    Asteca
Am Central  Arquitetura    Totonaca
Você já tentou assim:
SELECT regiao.reg, povos.povos, cat.categoria, content.titulo, content.content
FROM cat 
INNER JOIN content ON content.categoria = cat.id_cat
INNER JOIN povos ON povos.id_povos = content.povos
INNER JOIN regiao ON regiao.id_regiao = povos.regiao;

Link para o comentário
Compartilhar em outros sites

  • 0
Oi,
Deveria ficar assim ó:

Região:     Categoria:   Povo:  
(id_regiao) (id_cat)       (id_povos)
_________________________________________
Africa      Arquitetura    Egípcio
Africa      Ciencia        Egípcio
Africa      Religiao       Egipcio
Am Central  Arquitetura    Maya
Am Central  Arquitetura    Olmeca
Am Central  Arquitetura    Asteca
Am Central  Arquitetura    Totonaca
Você já tentou assim:
SELECT regiao.reg, povos.povos, cat.categoria, content.titulo, content.content
FROM cat 
INNER JOIN content ON content.categoria = cat.id_cat
INNER JOIN povos ON povos.id_povos = content.povos
INNER JOIN regiao ON regiao.id_regiao = povos.regiao;

Caro Denis, obrigado pela sugestão, porem, está dando um errinho:

"Unknown column 'povos.povos' in 'field list'"

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'Webster'!

Caro Denis, obrigado pela sugestão, porem, está dando um errinho:

"Unknown column 'povos.povos' in 'field list'"

Reveja sua estrutura de dados, pois segui o exemplo fornecido no primeiro post para te passar a instrução.

Veja abaixo o que você passou no primeiro post deste tópico:

Estive pesquisando e me parece que isto é possível através do método INNER JOIN. Porém não consegui encadear vários INNER JOIN como eu conseguia fazer no Access. No Access a sintaxe seria a seguinte:

SELECT regiao.reg, povos.povos, cat.categoria, content.titulo, content.content

FROM cat INNER JOIN (regiao INNER JOIN (povos INNER JOIN content ON povos.id_povos = content.povos) ON regiao.id_regiao = povos.regiao) ON cat.id_cat = content.categoria;

Desde já agradeço o empenho!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...