Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adrien Cardoso

com consulta.

Recommended Posts

Pessoal, estou precisando de ajuda.é o seguinte. tenho uma tabela chamada articles, uma users e uma ArticlexUsera seguinte consulta:

SELECT a.id_article, a.TITLE, a.DATETIME, b.id_user, u.user, u.nameFROM articles AS aLEFT JOIN articlexuser AS b ON ( b.id_article = a.id_article )LEFT JOIN users AS u ON ( u.id_user = b.ID_USER )

Me retorna estes valores.id_article,TITLE,DATETIME,id_user,user,name1,Lorem Ipsum,2007-03-13 01:39:00,5,adrien,Adrien1,Lorem Ipsum,2007-03-13 01:39:00,8,outro,outronome2,Artigo 2,2007-03-13 00:00:00,5,adrien,AdrienO que eu queria, era que o sql retornasse apenas uma ocorrência do artigo, e a lista de nomes associada a ele, sem duplicar o artigo, senão quando eu for usar no meu sistema, vou ter que bolar um jeito de juntar as ocorrências iguais com código, o que em grande escala acredito que degradaria a performance.tentei um group by id_article mas aí eu perdi a 2a ocorrencia.alguma idéia de como poderia fazer?valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, consegui a solução com o Rudy Limeback do r937.com

select a.id_article, a.title, u.users, t.tags				from articles as a								left outer join ( select b.id_article, 					group_concat( c.name order by c.user separator ', ') as users                 				  from articlexuser as b        					inner join users as c on c.id_user = b.id_user         					group by b.id_article ) 					as u on u.id_article = a.id_article 								left outer join ( select d.id_article, 					group_concat( e.tag order by e.tag separator ', ') as tags                  				  from articlextags as d         				  inner join tags as e on e.id_tag = d.id_tag					group by d.id_article ) 					as t on t.id_article = a.id_article

ainda estou estudando a query para entender direito tydo o que ela faz, mas ela funcionou perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.