Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera beleza?
pra variar preciso da ajuda de vcs
vamos lá
tenho um sistema em php/mysql que faz um botão que lista todas as categorias que tem alguma notícia cadastrada, assim o usuário não fará a chamada "busca burra", que seria buscar categorias sem registros, porém quando faço o meu select com inner join ele busca todas as categorias e seus respectivos registro como desejado, porém surgiu um pequeno problema, se existir 5 notícias daquela categoria ele apresentará 5x a mesma categoria, como faço para que apareça apenas uma categoria.
Segue o select:
$sql_seleciona_plano_sql = "
SELECT
*
FROM
"._TABELA_NOTICIA_."
INNER JOIN
"._TABELA_CATEGORIA_."
ON
"._TABELA_NOTICIA_.".categoria_noticia = "._TABELA_CATEGORIA_.".id_categoria
";
O resultado:
Categoria1
Categoria1
Categoria3
Categoria3
Categoria3
Categoria3
Categoria8
Categoria8
Categoria8
Categoria10
Categoria19
Categoria32
Vlw e aguardo a ajuda http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif
vlw mas não funcionou, continuou na mesma ¬¬
Bruno,
Você esta selecionando todos os campos, DISTINCT ira produzir resultados duplicados para categorias que tenham noticias diferentes. Se você checar sua tabela noticias, verá que provávelmente há 2 notícias da categoria1, 5 da categoria3... assim como o resultado acima.
Você terá que usar GROUP BY, para obter apenas uma categoria de cada.
$sql_seleciona_plano_sql = "
SELECT
*
FROM
"._TABELA_NOTICIA_."
INNER JOIN
"._TABELA_CATEGORIA_."
ON
"._TABELA_NOTICIA_.".categoria_noticia = "._TABELA_CATEGORIA_.".id_categoria
GROUP BY categoria";
vlw cara é isso msm, só o que muda é o campo de categora pra nome_categoria no meu caso, obrigado!
Utilize a propriedade DISTINCT:
$sql_seleciona_plano_sql = "
SELECT DISTINCT
*
FROM
"._TABELA_NOTICIA_."
INNER JOIN
"._TABELA_CATEGORIA_."
ON
"._TABELA_NOTICIA_.".categoria_noticia = "._TABELA_CATEGORIA_.".id_categoria
";