ohlele 0 Denunciar post Postado Abril 9, 2013 Olá pessoal estou com uma dúvida e nos materiais que encontrei na net não funcionou. Tabelas de exemplo: casa carro produto Campos iguais: nome descricao Eu quero fazer uma busca com uma ou mais palavras qualquer dos dois campos e nas tres ou mais tabelas existentes ao mesmo tempo. Exemplo, buscar dvd em: casa nome e casa descricao carro nome e carro descricao produto nome e produto descricao E mostrar só o que ele encontrar realmente. Entenderam. Valeu galera Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 9, 2013 Não sei se entendi bem qual a sua dúvida exata (comandos sql, saber quais tabelas tem as colunas, junção de tabelas), mas : Coisas que podem ter ajudar : tabela de metadados union like Full-Text Search Compartilhar este post Link para o post Compartilhar em outros sites
ohlele 0 Denunciar post Postado Abril 9, 2013 Motta é essa a consulta: SELECT * FROM produtos WHERE nome LIKE '%busca%' UNION SELECT * FROM casa WHERE nome LIKE '%busca%' Seria isso, assim funciona para duas tabelas, só que eu quero que funcione para 3,4 ou mais tabelas ao mesmo tempo. Obrigado Já tentei assim também mas não funciona, a consulta traz um monte de resultados: SELECT p.nome, p.descricao, a.nome, a.descricao FROM produtos p, artigos a WHERE p.nome LIKE '%busca%' OR p.descricao LIKE '%busca%' OR a.nome LIKE '%".$q."%' Assim retorna um monte de resultados que não precisam. Tem como melhorar? Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 9, 2013 + um union SELECT * FROM produtos WHERE nome LIKE '%busca%' UNION SELECT * FROM casa WHERE nome LIKE '%busca%' UNION SELECT * FROM xpto WHERE nome LIKE '%busca%' lembre que as colunas do union tem de ter a mesma quantidade e tipo uma solução seria montar a query dinamicamente para todas as tabelas que tem uma coluna com determinado nome , não é simples mas é possível e creio que existam exemplos na Web. Compartilhar este post Link para o post Compartilhar em outros sites
ohlele 0 Denunciar post Postado Abril 9, 2013 Está dando esse erro: #1222 - The used SELECT statements have a different number of columns Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 9, 2013 Lembre que as colunas do union tem de ter a mesma quantidade e tipo SELECT nome FROM produtos WHERE nome LIKE '%busca%' UNION SELECT nome FROM casa WHERE nome LIKE '%busca%' UNION SELECT nome FROM xpto WHERE nome LIKE '%busca% ' Compartilhar este post Link para o post Compartilhar em outros sites
ohlele 0 Denunciar post Postado Abril 9, 2013 Como assim? Pois se eu consulto só com duas tabelas funciona, essa duas tabelas tem campos diferentes. Mas se eu adiciono a terceira ai não funciona. Que tipos são esses? Ex: se tiver varchar em uma tem que ter na outra? Se tiver text em uma tem que ter na outra? Não importa a quantidade de campos e sim o tipo? Seria isso mesmo? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 9, 2013 Pois se eu consulto só com duas tabelas funciona, essa duas tabelas tem campos diferentes. Campos diferentes mas no mesmo número e tipo senão não roda. Dá uma lida no manual para mais detalhes. Compartilhar este post Link para o post Compartilhar em outros sites