Jump to content


Photo

Dúvida Com Contagem De Registros Em 2 Tabelas


  • Faça o login para participar
1 reply to this topic

#1 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 10/08/2009, 16:00

Boa Tarde Pessoal!

To com uma dúvida aqui pra desenvolver em PHP + mysql. Acredito que seja possível de uma maneira prática, mais não consegui desenvolver nada.
Vamos as explicações.. (Vou resumir as tabelas).

Tenho uma tabela categoria:
id int,
titulo varchar(200)

e outra tabela Produto:
id int,
titulo varchar(200),
id_cat int - FK

Bom.. preciso de um SELECT que retorne o id de uma categoria aleatória, porém somente retornar as categorias que tenha produtos cadastrados nelas. As categorias que não foram cadastrados produtos, feve ignorar.

Tentei fazer da seguinte maneira:
SELECT
	c.id AS id
				
FROM
	categoria_produto c
	INNER JOIN produtos p ON p.categoria = c.id
					
WHERE 
	(SELECT COUNT(*) AS qtde FROM produtos WHERE categoria = c.id) > 0
					
ORDER BY RAND()
				
LIMIT 1

Mais não deu mto certo, ele retorna um loop infinito, não sei o pq..
Minha query está muito errada? :lol:

Obrigado pessoal.
Desde já agradeço.
Anderson Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 10/08/2009, 19:02

Mais não deu mto certo, ele retorna um loop infinito, não sei o pq..
Minha query está muito errada? :lol:

Obrigado pessoal.
Desde já agradeço.
Anderson Possamai


Loop infinito!? Isso é coisa do seu código... :D

Existe maneira melhor de se fazer uma query desse tipo. Por exemplo:

SELECT c.id  FROM categoria c  WHERE EXISTS (    SELECT 1      FROM produto      WHERE id_cat = c.id  )  ORDER BY RAND()  LIMIT 1

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq