Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como poderia ordenar em um único sql todas as categorias e chamar a única matéria recente dentro de sua respectiva categoria... tipo:
categoria: "cidade" - id_categoria:2
1º - materia id:10 - id_categoria:2 (a mais recente da lista)
categoria: "novidades" - id_categoria: 3
1º - materia id:20 - id_categoria:3 (a mais recente da lista)
...
tendo as seguintes tabelas:
//tabela de categorias
CREATE TABLE `tab_categorias` (
`id_categoria` int(11) NOT NULL AUTO_INCREMENT,
`categoria` varchar(255) DEFAULT NULL,
`classe` varchar(255) DEFAULT NULL,
`url` varchar(255) DEFAULT NULL,
`slug` varchar(255) DEFAULT NULL,
`id_pai` int(11) NOT NULL DEFAULT '0',
`permissao` tinyint(3) NOT NULL DEFAULT '1',
`ordem` int(11) DEFAULT '1',
`destaque` tinyint(3) DEFAULT '0',
`menu_principal` tinyint(3) DEFAULT '0',
`titulo_selo_destaque_home` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id_categoria`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
//tabela de materias
CREATE TABLE `tab_materias` (
`id_materia` int(11) NOT NULL AUTO_INCREMENT,
`id_categoria` int(11) DEFAULT NULL,
`chamada_home` varchar(255) DEFAULT NULL,
`titulo` varchar(255) DEFAULT NULL,
`texto` longtext,
`data` datetime DEFAULT NULL,
`permissao` tinyint(3) NOT NULL DEFAULT '1',
`destaque` tinyint(3) DEFAULT '0',
`exibe_data` tinyint(3) DEFAULT '0',
`imagem_destaque` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id_materia`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
tentei isso mas não deu certo a ordenação...
Select DISTINCT
tab_materias.id_materia,
tab_materias.*,
tab_categorias.id_categoria,
from
tb_materias,
tb_categorias
where tab_materias.id_categoria = tab_categorias.id_categoria and tab_materias.permissao=1 group by tab_materias.id_categoria order by tab_materias.id_materia DESC
e isso, também não rolou:
SELECT DISTINCT tab_materias.id_categoria, tab_materias.*, tab_categorias.id_categoria FROM tab_materias
INNER JOIN
tab_categorias ON tab_materias.id_categoria=tab_categorias.id_categoria
WHERE (tab_categorias.id_pai=$idc OR tab_materias.id_categoria=$idc ) and
tab_materias.permissao=1
GROUP BY tab_categorias.id_categoria DESC,tab_materias.id_categoria ASC
ORDER BY tab_categorias.id_pai ASC,
tab_categorias.ordem ASC,
tab_materias.data DESC,
tab_materias.id_materia DESC,
tab_materias.titulo ASC
Carregando comentários...