bigueee 0 Denunciar post Postado Dezembro 3, 2009 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
Prog 183 Denunciar post Postado Dezembro 3, 2009 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
giesta 29 Denunciar post Postado Dezembro 5, 2009 Da sim, mas soh olhando o esquema das suas tabelas para pode ajudalo Compartilhar este post Link para o post Compartilhar em outros sites