Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Daew pessoal...
Eu tenho uma tabela de notícias que tem um relacionamento de Muitos-pra-Muitos com a tabela de categorias de noticias...
Nesse caso está assim:
-> 3 tabelas;
-> Tabela noticias: id, titulo, chamada, etc...
-> Tabela categorias: id, titulo;
-> Tabela noticias_categorias: noticia_id, categoria_id;
Estou puxando todos os dados de uma só vez usando o JOIN:
SELECT n.id AS nid, n.titulo AS nt, n.chamada AS nc, n.data_criacao AS nd, c.id AS cid, c.titulo AS ct
FROM noticias AS n
JOIN noticias_categorias AS nc ON (n.id = nc.noticia_id)
JOIN categorianoticias AS c ON (c.id = nc.categorianoticia_id)
GROUP BY cid DESC
LIMIT 9
**[nid](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+n.titulo+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60n%60.%60nid%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361)** _______** [nt](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+n.titulo+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60n%60.%60nt%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361) **____________________ **[nc](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+n.titulo+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60n%60.%60nc%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361) ** ______________________________________ **[nd](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+n.titulo+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60n%60.%60nd%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361)** __________ **[cid](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+n.titulo+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60c%60.%60cid%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361)** ________ ** [ct](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+n.titulo+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60c%60.%60ct%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361)**
**1** _____ **teste de titulo num1 **____ **<p>teste de chamada num1</p>** ________ **2009-10-22 19:04:22** ____ **8 **________ **praça **
**1** _____ **teste de titulo num1** ____ **<p>teste de chamada num1</p>** ________ **2009-10-22 19:04:22** ____ **7** ________ **mercado**
**1** _____** teste de titulo num1** ____ **<p>teste de chamada num1</p>** _________ **2009-10-22 19:04:22** ____ **6** ________ **preto **
**4** _____ **sdfs** ___________________ **<p>dsfsdf</p>** ______________________** 2009-10-22 20:39:09** ____ **5 **________ **branco **
**1 **_____ **teste de titulo num1** ____ **<p>teste de chamada num1</p>** _________ **2009-10-22 19:04:22** ____ **4** ________ **azul**
Da forma como está, eu consegui fazer com que ele não repetisse as categorias, exibindo somente aquelas que estão relacionadas com as notícias e sem repetir o ID; Porém ele repete a notícia... =/
Já tentei usar o SELECT DISTINCT porem esse comando só funciona se eu informar somente os dados de UMA tabela (noticias por exemplo)... e ao tentar selecionar os dados da tabela de categorias ele para de funcionar;
O que estou querendo fazer é o seguinte:
Uma listagem das ultimas noticias cadastradas divididas por categorias... nesse caso, apareceria somente UMA de cada categoria cadastrada que estivesse ligada com uma notícia ao menos... e essa notícia não poderia se repetir na listagem também...
Eu tentei usar o GROUP_CONCAT() também... para ver se funcionava, e ele mostra as outras noticias q estão relacionadas as categorias também... porém não sei como filtrar para não repetir essa bendita notícia:
[nid](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+GROUP_CONCAT%28n.titulo%29+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60n%60.%60nid%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361) ____________ [nt](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+GROUP_CONCAT%28n.titulo%29+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60nt%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361) _______________________________________________ [nc](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+GROUP_CONCAT%28n.titulo%29+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60n%60.%60nc%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361) ___________________________ [nd](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+GROUP_CONCAT%28n.titulo%29+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60n%60.%60nd%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361) ________________ [cid](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+GROUP_CONCAT%28n.titulo%29+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60c%60.%60cid%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361) ________ [ct](http://127.0.0.1/phpmyadmin/sql.php?db=temoscasa&table=noticias&sql_query=SELECT+n.id+AS+nid%2C+GROUP_CONCAT%28n.titulo%29+AS+nt%2C+n.chamada+AS+nc%2C+n.data_criacao+AS+nd%2C+c.id+AS+cid%2C+c.titulo+AS+ct+FROM+noticias+AS+n+JOIN+noticias_categorias+AS+nc+ON+%28n.id+%3D+nc.noticia_id%29+JOIN+categorianoticias+AS+c+ON+%28c.id+%3D+nc.categorianoticia_id%29+GROUP+BY+cid+DESC+ORDER+BY+%60c%60.%60ct%60+ASC+LIMIT+9&token=62695e3db6828359615a05c3effbf361)
**1** _______ **teste de titulo num1** __________________________ **<p>teste de chamada num1</p>** _______ **2009-10-22 19:04:22** _______ **8** _______ **praça**
**1** _______ **teste de titulo num1 **__________________________ **<p>teste de chamada num1</p>** _______ **2009-10-22 19:04:22** _______ **7** _______ **mercado**
**3** _______ **teste de titulo de album,teste de titulo num1** _______ **<p>tste</p>** _______________________**2009-10-22 20:36:01** _______ **6** _______ **preto**
**4** _______ **sdfs,dfgd** ___________________________________ **<p>dsfsdf</p>** ______________________**2009-10-22 20:39:09** _______ **5** _______ **branco**
**1** _______ **teste de titulo num1,dsfsd,sdfs,rer** _______________ **<p>teste de chamada num1</p>** _______ **2009-10-22 19:04:22** _______**4** _______ **azul**
->Alguém sabe como fazer essa consulta??
Carregando comentários...