Ir para conteúdo

POWERED BY:

Arquivado

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

eronventer

Sub Select

Recommended Posts

Ae pessoal!!

 

O servidor onde meu cliente tem o site hospedado tem mySQL 4.0

só que eu necessito fazer uma subquery, buscando as subcategorias

que tem produtos cadastrados.

 

Como eu poderia fazer isso ja que a clausula EXISTS funciona somente a partir

do mySQL 4.1?

 

Eu tentei da maneira descrita abaixo, mas nao deu certo.

 

SELECT * FROM tb_subcat WHERE id IN (SELECT id_subcat FROM tb_produtos) ORDER BY subcategoria ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Wagner!!

 

Agradeço sua colaboração, tentei aqui de varias maneiras

mas não consegui um resultado.

 

As duas maneiras que tentei foram:

 

Esta me retornou a pagiuna em branco

SELECT * FROM tb_subcat LEFT JOIN tb_produtos WHERE tb_produtos <> NULL ORDER BY subcategoria ASC

Esta abaixo retornou varias vezes a mesma subcategoria

SELECT S.subcategoria, S.id, P.id_subcat FROM tb_subcat S LEFT JOIN tb_produtos P ON P.id_subcat = S.id ORDER BY S.subcategoria ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte, faz o LEFT JOIN igualando os campos chave PK = FK e veja nesse conjunto retornado se o resultado que você busca é um sub-conjunto deste conjunto retornado. Se for, poste a estrutura das tabelas envolvidas aqui que vamos dar um jeito.

 

Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na 2ª query eu igualei eles ja mas nao deu certo...

 

td_subcat:

CREATE TABLE `tb_subcat` (

`id` int(11) NOT NULL auto_increment,

`subcategoria` varchar(50) default NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `subcategoria` (`subcategoria`)

) TYPE=MyISAM AUTO_INCREMENT=1;

tb_produtos:

CREATE TABLE `tb_produtos` (

`id` int(11) NOT NULL auto_increment,

`dt_inclusao` date NOT NULL default '0000-00-00',

`id_subcat` int(11) default NULL,

`nome` varchar(50) default NULL,

`descricao` longtext,

`pedido` int(10) default NULL,

`foto1` varchar(100) default NULL,

`foto2` varchar(100) default NULL,

`foto3` varchar(100) default NULL,

PRIMARY KEY (`id`)

) TYPE=MyISAM AUTO_INCREMENT=1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,Bom, com a primeira consulta, você quer recuperar todas as subcategorias que tem produtos certo?Se sua regra não permitir produtos sem subcategorias, você pode fazer uma INNER JOIN vai dar certo, listando todas as categorias.No caso do conjunto recuperado apresentar dados repetidos, use DISTINCT....

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.