::Porto 0 Denunciar post Postado Dezembro 14, 2006 Pessoal, como resolver a seguinte situação: Vamos supor as 2 tabelas: ------------------- LIVROS -----------------------ID LIVRO EDICAO PAGINAS EDITORA1 livro01 2a 200 Atica2 livro02 3a 320 Saraiva3 livro03 1a 403 Saraiva---------------- CATEGORIA ---------------------IDP ID CATEGORIA PRECO1 2 usado 55,002 1 novo 45,003 1 novo 50,004 1 usado 65,005 3 usado 40,006 3 novo 40,007 3 novo 50,008 3 usado 45,00Como criar uma query que me forneça uma ordenação decrescente em função da contagem de IDs da tabela CATEGORIA, ouseja, ordenando pela quantidade de livros em estoque. Utilizando as tabelas acima teríamos a seguinte classificação: I) O ID 3 seria o primeiro pois contém 4 registros (livros). II) O ID 1 seria o segundo pois contém 3 registros (livros). III) O ID 2 seria o terceiro pois contém 1 registro (livro). Daí a minha intenção seria MANTER ESSA ORDENAÇÃO DOS IDs para montar um looping com "mysql_fetch_array" fornecendo dados tanto da tabela LIVROS como também da tabela CATEGORIA. Alguém poderia ajudar? Obrigado. http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif Obs.: Segue o código abaixo para criarem o banco de dados e inserirem os dados, facilitando para a realização de testes. CREATE DATABASE `teste`;CREATE TABLE livros ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, livro VARCHAR(255) NULL, edicao VARCHAR(20) NULL, paginas INTEGER UNSIGNED NULL, editora VARCHAR(45) NULL, PRIMARY KEY(id)) TYPE=MyISAM;CREATE TABLE categoria ( idp INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, id INTEGER UNSIGNED NULL, categoria VARCHAR(20) NULL, preco INTEGER UNSIGNED NULL, PRIMARY KEY(idp), INDEX categoria_FKIndex1(id)) TYPE=MyISAM;INSERT INTO `livros` ( `id` , `livro` , `edicao` , `paginas` , `editora` )VALUES ('1', 'livro01', '2a', '200', 'Atica'), ('2', 'livro02', '3a', '320', 'Saraiva'), ('3', 'livro03', '1a', '403', 'Saraiva');INSERT INTO `categoria` ( `idp` , `id` , `categoria` , `preco` )VALUES ('1', '2', 'usado', '55'), ('2', '1', 'novo', '45'), ('3', '1', 'novo', '50'), ('4', '1', 'usado', '65'), ('5', '3', 'usado', '40'), ('6', '3', 'novo', '40'), ('7', '3', 'novo', '50'), ('8', '3', 'usado', '45'); Compartilhar este post Link para o post Compartilhar em outros sites
::Porto 0 Denunciar post Postado Dezembro 14, 2006 Pessoal, a questão foi resolvida e estou repassando a solução para interessados. Obs.: o "case sensitive" foi o meu problema. Um abraço. http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif "SELECT categoria.ID, PRECO, CATEGORIA, count(livros.ID) AS QUANTIDADE FROM livros, categoria WHERE categoria.ID = livros.ID GROUP BY(livros.ID) ORDER BY QUANTIDADE DESC" Compartilhar este post Link para o post Compartilhar em outros sites