Ir para conteúdo

POWERED BY:

Arquivado

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

alissonxx

erro ao fazer busca em 2 tabelas

Recommended Posts

Pessoal, estou tentando fazer uma busca, onde ele pode procurar e 2 tabelas

 

radchecks > id,empresa,username,attribute e value

 

e na tabela usergroups > GroupName

 

sao os campos acima onde ele pode buscar,

 

e esse eh o codigo de busca

 

$sql = "SELECT * FROM radchecks JOIN usergroups WHERE radchecks.id LIKE ('%".$buscar."%') OR radchecks.Empresa LIKE ('%".$buscar."%') OR radchecks.UserName LIKE ('%".$buscar."%') OR radchecks.Attribute LIKE('%".$buscar."%') OR radchecks.Value LIKE('%".$buscar."%') OR usergroups.GroupName LIKE('%".$buscar."%') ORDER BY radchecks.UserName ASC";

 

em vermelho está onde usa a tabela usergroups,

 

testei aqui na minha tabela e ele utilizou 750 MB de memoria para fazer a busca até que aparece

 

"cliente out of memory"

 

tem algo de errado no codigo?

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o campo que relaciona as tabelas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, estou tentando fazer uma busca, onde ele pode procurar e 2 tabelas

 

radchecks > id,empresa,username,attribute e value

 

e na tabela usergroups > GroupName

 

sao os campos acima onde ele pode buscar,

 

e esse eh o codigo de busca

 

$sql = "SELECT * FROM radchecks JOIN usergroups WHERE radchecks.id LIKE ('%".$buscar."%') OR radchecks.Empresa LIKE ('%".$buscar."%') OR radchecks.UserName LIKE ('%".$buscar."%') OR radchecks.Attribute LIKE('%".$buscar."%') OR radchecks.Value LIKE('%".$buscar."%') OR usergroups.GroupName LIKE('%".$buscar."%') ORDER BY radchecks.UserName ASC";

 

em vermelho está onde usa a tabela usergroups,

 

testei aqui na minha tabela e ele utilizou 750 MB de memoria para fazer a busca até que aparece

 

"cliente out of memory"

 

tem algo de errado no codigo?

 

obrigado!

 

ninguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria algo como

 

$sql = "SELECT radchecks .*, usergroups.GroupName FROM radchecks INNER JOIN usergroups  ON radchecks.UserName = usergroups.UserName WHERE radchecks.id LIKE ('%".$buscar."%') OR radchecks.Empresa LIKE ('%".$buscar."%') OR radchecks.UserName LIKE ('%".$buscar."%') OR radchecks.Attribute LIKE('%".$buscar."%') OR radchecks.Value LIKE('%".$buscar."%') OR usergroups.GroupName LIKE('%".$buscar."%') ORDER BY radchecks.UserName ASC";

 

apeanas alterei a forma como relaciona as tabelas e considerei que o campo UserName tem nas duas tabelas, apesar de nao entender o que tem isso haver com a tabela de grupos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria algo como

 

$sql = "SELECT radchecks .*, usergroups.GroupName FROM radchecks INNER JOIN usergroups  ON radchecks.UserName = usergroups.UserName WHERE radchecks.id LIKE ('%".$buscar."%') OR radchecks.Empresa LIKE ('%".$buscar."%') OR radchecks.UserName LIKE ('%".$buscar."%') OR radchecks.Attribute LIKE('%".$buscar."%') OR radchecks.Value LIKE('%".$buscar."%') OR usergroups.GroupName LIKE('%".$buscar."%') ORDER BY radchecks.UserName ASC";

 

apeanas alterei a forma como relaciona as tabelas e considerei que o campo UserName tem nas duas tabelas, apesar de nao entender o que tem isso haver com a tabela de grupos

entao é o seguinte

 

tabela radchecks tem os campos -> id,empresa,username,attribute e value

 

e na tabela usergroups -> username, GroupName

 

o que liga elas é o UserName do cara.

 

e eu queria buscar em todos os campos sobre o cara,

 

tanto na tabela radchecks quanto na usergroups

Compartilhar este post


Link para o post
Compartilhar em outros sites

testou o que passei? que resultado obteve?

 

repito que a sua tabela de grupos nao esta correta pois gera dados desnecessarios mas se assim prefere seguimos desta forma

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.