Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21

Consulta MySQL

11-05-2010 11:24

Olá galera,

Tenho uma relação de 1 para N e precisaria retornar todos os N da outra tabela quando chamo meu 1, existiria alguma consulta SQL única para tal proeza?

Vou explicar:

Tenho as seguintes tabelas

empresas
(id, nome)
empresas_segmentos
(id, nome)
empresas_rel_segmentos
(id, id_empresa, id_segmento)

Faço a consulta:
SELECT e.id, e.nome AS NomeEmpresa, s.id, s.nome AS NomeSegmento, r.id, r.id_empresa, r.id_segmento FROM empresas AS e, empresas_segmentos as s JOIN empresas_rel_segmentos AS r ON r.id_empresa = e.id WHERE s.id = r.id_segmento ORDER BY NomeEmpresa ASC;

Acontece que ela me retornar :
Imagem

Sei que tem algo errado e esse erro já é comum até quando se puxa dados de uma tabela, porém eu queria consultar que tudo viesse na manha sabem ou um php que unise ao array e me desse um array com os segmentos.

Muito Obrigado.

Abraços!
0
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21

Consulta MySQL

11-05-2010 11:40

Galera, consegui.

Fiz da seguinte maneira:
// buscando as empresas cadastradas $query = " SELECT e.nome AS NomeEmpresa, e.id_tipo, e.visivel, e.id AS idEmpresa, t.id, t.nome AS NomeTipo, t.visivel FROM empresas AS e JOIN empresas_tipos AS t ON t.id = e.id_tipo WHERE e.visivel = 1 ORDER BY e.nome "; $empresas = $db->get_records_sql($query); // loop pelas empresas que tem cadastrada para buscar seus segmentos for ($i=0; $i < count($empresas); $i++){ $sql = "SELECT r.id_empresa, r.id_segmento, s.id, s.nome AS NomeSegmento FROM empresas_rel_segmentos AS r JOIN empresas_segmentos AS s ON r.id_segmento = s.id WHERE r.id_empresa = :id"; $res = $db->get_records_sql($sql, array('id'=>$empresas[$i]->idEmpresa)); foreach ($res as $k => $v){ $empresas[$i]->segmentos[] = $v->NomeSegmento; } }

Primeiro eu faço a busca pelas empresas, depois faço um loop pelas empresas e então vou adicionando os segmentos dessa empresa a seu array principal que é a empresa, depois na index apenas vou imprimir e correr para o abraço, o código tá comentado. abraços e obrigado pelo espaço.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Consulta MySQL

11-05-2010 17:30

Boa. ;-)
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado