tthsr 0 Denunciar post Postado Julho 3, 2013 Bom dia, tenho um sistema que possui as duas tabelas: house ( int id, varchar house_des ; } e outra house_son ( int id_house_son (fk para table_house, unique)int id_house_father (fk para table_house) ) A questão é, pode se registrar várias casas, e casas podem ser casas afiliadas de casas pais, porém uma casa afiliada só pode ser afiliada a uma casa pai, e casa pai nao é afiliada de nenhuma outra casa; considerando na house: Id | house description1 Casa de Sagitário2 Casa de Gêmeos3 Casa de Urso4 Casa de Aguia5 Casa de Cérbero 6 Casa das Aguas 7 Casa de Agiotas8 Casa de Exterminio e na house_sonid_house_son | id_house_father3 14 1 5 26 27 8 Teriamos a Casa de Gêmeos e Sagitários como principais, e a classe de Urso e Aguia como filhas de Sagitario e a de Cerbero e das Aguas como filha de Gemeos, e a de Exterminio como filial de de Agiotas Até então eu efetuava uma busca que contemplava apenas uma busca pela casa pai, no caso: SELECT house.id as idHouse, house.house_des as desHouse, GROUP_CONCAT( outro.house_des ORDER BY outro.house_des ASC SEPARATOR ', ') as desSons FROM house h left outer JOIN house_son son ON h.id = son.id_house_father left outer JOIN house outro ON son.idt_id_house_son = outro.id WHERE (h.id NOT IN (son.id_house_son)) AND (h.house_des like "%sagi%" ) GROUP BY h.id ORDER BY desHouse asc e isso me retorna o resultado:idHouse | desHouse | desSons1 Casa de Sagitario Casa de Aguia, Casa de Urso porém agora preciso buscar nao apenas pelas casas pais, mas pelas filiais também, e quando pesquisar por Casa de Aguia por exemplo, nao retornar apenas sua casa pai, mas sim sua casa Pai e todas filhas do Pai, ou seja, buscar por "ag" e ter como resultado:idHouse | desHouse | desSons1 Casa de Sagitario Casa de Aguia, Casa de Urso2 Casa de Gemeos Casa das Aguas, Casa de Cerbero7 Casa de Agiotas Casa de Exterminio *negrito apenas para mostrar o que foi buscado Alguma ideia ? Estou bem perdido nesse fluxo "reverso" Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 4, 2013 Talvez fosse melhor uma só tabela com auto-relacionamento, MySql não tem que saiba connect by (ou algo semalhante), mas creio que existem formas de fazer queries hierarquicas, creio até já respondido por isto aqui. Casa id,descricao,id_pai (fk casa.id) Compartilhar este post Link para o post Compartilhar em outros sites