2013-04-03 111 views
-2

解决这个子查询,我需要你的帮助来解决这个查询:需要帮助在MySQL

select idiomas.bandeira,conteudos.nid, dreg, titulo, tag from conteudos 
      inner join conteudos_tag on conteudos.nid = conteudos_tag.cod_conteudo 
      inner join tagstree on conteudos_tag.cod_tag = tagstree.nid 
      inner join idiomas on conteudos.nid_idioma = idiomas.nid 
      order by conteudos.nid desc limit 5 

而这个回报:

img/idiomas/pt.png;30;2013-04-04 12:41:00;titulo;Voip 
img/idiomas/pt.png;30;2013-04-04 12:41:00;titulo;Linux 
img/idiomas/pt.png;28;2012-08-07 01:50:18;Números e Tarifários;Números e tarifários 
img/idiomas/pt.png;27;2012-08-07 01:33:48;Terminais VoIP2;Terminais 
img/idiomas/pt.png;26;2012-08-03 19:06:13;Rede Estruturada;Rede Estruturada 

,我需要返回此:

img/idiomas/pt.png;30;2013-04-04 12:41:00;titulo;Voip, Linux 
img/idiomas/pt.png;28;2012-08-07 01:50:18;Números e Tarifários;Números e tarifários 
img/idiomas/pt.png;27;2012-08-07 01:33:48;Terminais VoIP2;Terminais 
img/idiomas/pt.png;26;2012-08-03 19:06:13;Rede Estruturada;Rede Estruturada 

更改位于第1行

韩国社交协会 锐

回答

2

那么这是一个有点很难说,因为我真的不知道哪一列是的,但我估计:

select idiomas.bandeira,conteudos.nid, dreg, titulo, 
GROUP_CONCAT(tag, SEPARATOR ', ') AS tag from conteudos 
     inner join conteudos_tag on conteudos.nid = conteudos_tag.cod_conteudo 
     inner join tagstree on conteudos_tag.cod_tag = tagstree.nid 
     inner join idiomas on conteudos.nid_idioma = idiomas.nid 
GROUP BY conteudos.nid 
     order by conteudos.nid desc limit 5 

这将组中的所有结果由看似独特的nid。如果同一个nid有多个标签,则它们将存储在一列中,并由,分隔。如果有其他非唯一列,则可以使用全部非聚合列进行分组,也可以使用GROUP_CONCAT

+0

对我来说似乎是对的,我会把同样的东西,但你打败了我 – 2013-04-03 23:14:31