Ir para conteúdo

POWERED BY:

Arquivado

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

roots_raiz

[Resolvido] Busca 3 Tabelas Relacionadas - Inner Join

Recommended Posts

Boa noite pessoal,

 

 

Tenho aqui uma busca em 3 tabelas onde utilizo INNER JOIN e WHERE com LIKE, qd estava busca apenas em 2 estava dando certo só que agora está buscando todos os dados cadastrados.

 

aqui o relacionamento entre a tabela de clientes e de categoria, está ok!

 

CLIENTES CATEGORIAS

(INT-PK) (INT-FK)

codigo <--- cod_cliente

 

 

Agora preciso coletar o código do website, que está relacionado com o código do cliente.

 

CLIENTES WEBSITE

(INT-PK) (INT-FK)

codigo <--- codigo_cliente

 

 

OS CÓDIGOS

 

 

SELECT * FROM clientes as cl
       INNER JOIN categorias as ca ON (cl.cod_categoria = ca.cod_categoria)
       INNER JOIN website as web ON (cl.codigo = web.codigo_cliente ) 
                                                       WHERE cl.nome_cliente LIKE '%$_GET[bUSCA]%' OR
                                                         ca.nome_categoria LIKE '%$_GET[bUSCA]%' 



 

 

Preciso do código do Website, só que está buscando todos os resultados.

 

abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui não seria

 

SELECT * FROM clientes as cl
       INNER JOIN categorias as ca ON (cl.cod_categoria = ca.cod_categoria)
       INNER JOIN website as web ON (cl.codigo_cliente = web.codigo_cliente ) 
                                                       WHERE cl.nome_cliente LIKE '%$_GET[bUSCA]%' OR
                                                         ca.nome_categoria LIKE '%$_GET[bUSCA]%' 

 

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está concatenando os valores recebidos por $_GET ??

"SELECT * FROM clientes as cl
       INNER JOIN categorias as ca ON (cl.cod_categoria = ca.cod_categoria)
       INNER JOIN website as web ON (cl.codigo = web.codigo_cliente ) 
                                                       WHERE cl.nome_cliente LIKE '%".$_GET['BUSCA']."%' OR
                                                         ca.nome_categoria LIKE '%".$_GET['BUSCA']."%'"; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

gremio10, deu certo irmão, agora uma dúvida, onde estava errado?

olhei no meu script e no que me ensinou e não vi diferença!!

 

André da Silva, nesse caso não é necessário concatenar "pelo menos eu não o faço" vlw tb!!

 

abraço e obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A diferença está aqui:

 

INNER JOIN website as web ON (cl.codigo = web.codigo_cliente ) 

 

 

INNER JOIN website as web ON (cl.codigo_cliente = web.codigo_cliente ) 

 

EDIT: Não vi que ele tinha respondido. :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, faz pouco tempo que desenvolvo em php/mysql por isso me respondam por favor.

com essa estrutura, posso selecionar quantas tabelas quiser, só ir adicionando:

 


INNER JOIN tabela ON (tabela_relacionamento = tabela_relacionamento ) 

 

é isso?

 

mais uma vez muito obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

digamos assim

 

tbl_cidade

id nome

 

tbl_usu

id nome tbl_cidade_id

 

SELECT usu.* FROM tbl_usu INNER JOIN tbl_cidade ON (tbl_cidade.id = tbl_usu.tbl_cidade_id) WHERE tbl_cidade.id = 2

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.