Fórum Multiplas Junções #466886
14/01/2014
0
Estou com um bom desafio.
Preciso de uma luz em como fazer junção com 5 tabelas diferentes.
Até agora eu fiz isso:
SELECT n.tit1 AS Titulo, n.year AS Ano, n.code AS ISBN,
n.indexint = 2 AS Nível,
e.expl_typdoc = 27 AS Mídia,
e.expl_location = 4 AS Filial
FROM notices n
INNER JOIN exemplaires e ON n.notice_id = e.expl_notice
Os campos Nível, Mídia e Filial retornam valor 0.
Descobri que cada um tem a sua própria tabela e que poderia utiliza-las.
Os valores que preciso para essa pesquisa não estão nas tabelas utilizadas nessa query (notices e exemplaires).
Qual é a melhor forma de fazer um join com essas 5 tabelas??
Andre Teixeira
Curtir tópico
+ 0Posts
14/01/2014
Leandro Chiodini
SEria legal voce colocar as outras tabelas,
e quais campos fazem ligação de uma para a outra.
dai fica mais facil montar o select aqui pra ti.
att,
Chiodini
Gostei + 0
14/01/2014
William
Gostei + 0
15/01/2014
Andre Teixeira
Mas a query já utilizada é essa:
SELECT n.tit1 AS Titulo, n.year AS Ano, n.code AS ISBN, (CASE n.indexint WHEN 1 THEN 'A1' WHEN 2 THEN 'A2' WHEN 4 THEN 'B1' WHEN 5 THEN 'B2' WHEN 8 THEN 'C1' WHEN 7 THEN 'C2' END) AS Nivel, (CASE e.expl_typdoc WHEN 27 THEN 'BD' WHEN 35 THEN 'Livro' WHEN 13 THEN 'CD Audio' WHEN 18 THEN 'Periódicos' WHEN 23 THEN 'T. Lidos' WHEN 54 THEN 'DVD' WHEN 36 THEN 'Livro + CD' WHEN 46 THEN 'Livro pedagógico' WHEN 50 THEN 'Livro + CD pedagógico' WHEN 24 THEN 'Livro + DVD' WHEN 53 THEN 'Matériel Pédagogique' WHEN 52 THEN 'Periódico Pedagógico' WHEN 26 THEN 'Dictionnaire' WHEN 17 THEN 'CD-Roms' END) AS Tipo, (CASE e.expl_statut WHEN 1 THEN 'Bom' WHEN 11 THEN 'Deteriorado' WHEN 12 THEN 'Perdido' WHEN 17 THEN 'Não Devolvido' WHEN 18 THEN 'Setor Pedagógico' END) AS Estado, (CASE e.expl_location WHEN 1 THEN 'Barra' WHEN 2 THEN 'Centro' WHEN 3 THEN 'NS' WHEN 4 THEN 'Botafogo' WHEN 5 THEN 'Copacabana' WHEN 6 THEN 'Tijuca' WHEN 7 THEN 'CG' WHEN 8 THEN 'Ipanema' WHEN 9 THEN 'Recreio' WHEN 10 THEN 'Sede' END) AS Filial FROM notices n INNER JOIN exemplaires e ON n.notice_id = e.expl_notice
Nós usamos o PMB-PhpMyBibli (http://en.wikipedia.org/wiki/PhpMyBibli)
Catalogamos livros, cd's e dvd's com atribuição de categorias, níveis e filial.
A programação de pesquisas é toda feita em mysql no sistema.
O que a query acima está fazendo é pegar todos os títulos, de todos os níveis, de todas as filiais.
Isso não é muito funcional, pois desejamos usar variáveis para pesquisar os títulos por filial, nível e categoria.
Como isso poderia ser feito, tendo como base o que já existe??
Gostei + 0
15/01/2014
William
Fica meio difícil ajudar ..rssrsrsrs
Gostei + 0
17/01/2014
Andre Teixeira
Eu fiz algo que em tese resolveria meu problema.
SELECT n.tit1, n.year AS Ano, n.code AS ISBN, t.tdoc_libelle AS Mídia, i.indexint_name AS Nível,
l.location_libelle AS Filial
FROM (
SELECT t.tdoc_libelle, t.idtyp_doc, e.expl_typdoc, e.expl_location, l.location_libelle, l.idlocation
FROM exemplaires e
INNER JOIN docs_location l ON e.expl_location = l.idlocation
INNER JOIN docs_type t ON e.expl_typdoc = t.idtyp_doc
) notices n
INNER JOIN (
SELECT i.indexint_name, i.indexint_id, n.indexint
FROM indexint i
INNER JOIN notices n ON i.indexint_id = n.indexint
) exemplaires e
ON n.notice_id = e.expl_notice;Mas o mysql informa o seguinte erro:
Gostei + 0
17/01/2014
William
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)