Ir para conteúdo

POWERED BY:

Arquivado

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

Leandro Pedrosa

Erro no consulta de duas tabelas, sendo uma delas não contendo nada

Recommended Posts

Bom dia.

Estou com problema de seleção de registros de duas tabelas.

Meu problema é mais ou menos o seguinte:

 

CREATE TABLE `categorias` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`nome` VARCHAR( 255 ) NOT NULL

) ENGINE = MYISAM;

 

CREATE TABLE `produtos` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`categoria_id` INT NOT NULL ,

`nome` VARCHAR( 255 ) NOT NULL ,

`preco` DECIMAL( 10,2 ) NOT NULL

) ENGINE = MYISAM;

 

Tenho vários registro por exemplo na tabela categorias

INSERT INTO `categorias` VALUES(1, 'Eletrodomésticos');

INSERT INTO `categorias` VALUES(2, 'Telefonia');

INSERT INTO `categorias` VALUES(3, 'Eletrônicos');

 

Só que eu não tenho nenhum registro na tabela produtos.

Mais eu preciso fazer uma consulta com palavra chaves, tipo assim

 

SELECT * FROM categorias c, produtos p WHERE c.nome LIKE '%telefonia%' || p.nome LIKE '%telefonia%';

 

Mais ele retorna nada, gostaria de saber como eu posso resolver esse problema, meu problema não é quantidade, mas a consulta retornar telefonia, pois pra agrupar eu faço isso depois.

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

SELECT id, nome, 'categoria' as origem FROM categorias WHERE nome LIKE '%telefonia%' 
UNION
SELECT id, nome, 'produto' as origem FROM produtos WHERE nome LIKE '%telefonia%'
ORDER BY nome;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, funcionou...

Agora está beleza...

Só tive que modificar uma coisinha, que você esqueceu de declarar apelido da tabela

 

SELECT id, nome, 'categoria' AS origem FROM categorias c WHERE c.nome LIKE '%telefonia%'

UNION

SELECT id, nome, 'produto' AS origem FROM produtos p WHERE p.nome LIKE '%telefonia%'

ORDER BY nome;

 

Eu sei que tempo de consulta vai ser sempre grande, mas não estou importando com isso. Muito obrigado.

 

[RESOLVIDO]

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.