Ir para conteúdo

POWERED BY:

Arquivado

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

bigueee

Select

Recommended Posts

Minha situação é o seguinte:

 

Tenho uma tabela de EMPRESAS e uma tabela TIPO DE MATERIAIS. Cada empresa pode estar vinculada a vários materiais, ou seja, o relacionamento cria uma nova tabela n:m.

 

Até ai tudo bem.

 

Agora preciso fazer um SELECT para trazer todas as empresas, bem como todos os materiais que estão vinculados a ela.

 

Da forma que pensei em fazer, iria fazer um SELECT das empresas e dentro do laço que fosse exibir as empresas faria uma nova consulta pelo id da empresa para trazer os materiais de cada uma.

 

Minha dúvida é se essa é a única forma ou se existe alguma forma de em uma consulta já trazer tudo. Já tentei de várias formas, e até consegui trazer os materiais, porém, se a empresa está vinculada com 3 materiais, ele retorna 3 vezes todos os dados da empresa, sendo que eu preciso que retorne uma vez os dados da empresa com os 3 materiais.

 

Tentei dar um GROUP BY nesse caso e ele só retorna uma vez os dados da empresa, só que só retorna daí o primeiro material apenas.

 

Espero que tenham entendido minha dúvida.

 

Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No MySQL você pode usar a função GROUP_CONCAT.

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

 

Mesmo repetindo os dados, você pode fazer o controle do fluxo do que será exibido na sua aplicação. Dependendo de quantos loops forem necessários, posso garantir que é muito melhor fazer 1 acesso e buscar resultados com dados repetidos do que fazer, por exemplo, 100 acessos aos dados e trazer apenas os dados que se fazem necessários para aquele resultado.

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.