-3

このクエリを解決するには、あなたの助けが必要です:

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行目です

Tks ルイ

4

1 に答える 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、それらは 1 つの列に格納され、 で区切られ,ます。すべての非集計列でグループ化するGROUP_CONCATか、他の非一意の列がある場合にも使用する方が正確な場合があります。

于 2013-04-03T23:13:51.840 に答える