Jump to content

Duvida Query


Daniivo

Recommended Posts

pessoal.

eu ando aos pontapes com o sql e base de dados. vejam se alguem me pode ajudar....

eu tenho 2 tabelas Pai e Filho

pai:

Id_pai

nome

Numero_da_familia

Filho:

Id_filho

nome

Id_pai

o objetivo è buscar o "numero da família" que esta na tabela pai quando estou a fazer o insert do filho.

eu vou inserir filhos e depois vou associa-los aos pais....

Edited by Daniivo
Link to comment
Share on other sites

o numero da familia vai servir para procurar pela familia, a ideia è meteres o numero e aparecer o pai ou qualquer um dos filhos correspondente a quele numero, a pesquisa sera feita por nome, numero BI, e numero de familia.

vou usar o numero porque isto sera como uma factura e terá um numero de fatura associado.

Edited by Daniivo
Link to comment
Share on other sites

hum, não foste muito claro no primeiro post, nem disseste que era para um filtro.

Sendo assim tens que usar tabelas de N para N, muitos para muitos, para fazeres relações entre as tabelas pai e filho.

O campo num_familia ou cod_familia tem que ser à parte.

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

Primeiro dá uma vista de olhos nisto para perceberes as tabelas N para N:

http://pt.wikipedia.org/wiki/N_para_N

Depois de leres isso dá uma vista de olhos ás tuas tabelas, não estão bem feitas.

Antes de te dar o exemplo convém perceberes, assim irás aprender, agora se te der feito é só copy/past e não queres isso, presumo.

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

visto que quererás inserir um filho, presumo que tens toda a informação a ser inserida, isto inclui o Numero_de_familia

pelo que percebi é somente isto (não existe nenhuma relação N-N):

// sql para saber o numero de familia
// terás de alterar o xxx pelo numero de familia
select `id_pai` from `pai` where `Numero_da_familia` = 'xxx'

depois de saberes o id_pai através do query anterior é só inserir os filhos com a informação a associar (id_pai)

depois é só inserir

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

visto que quererás inserir um filho, presumo que tens toda a informação a ser inserida, isto inclui o Numero_de_familia

pelo que percebi é somente isto (não existe nenhuma relação N-N):

// sql para saber o numero de familia
// terás de alterar o xxx pelo numero de familia
select `id_pai` from `pai` where `Numero_da_familia` = 'xxx'

depois de saberes o id_pai através do query anterior é só inserir os filhos com a informação a associar (id_pai)

depois é só inserir

loool

nao é n para n porque 1 pai tem varios filhos e 1 filho tem so um pai ou seja 1 to n.

eu vou ver se essa query serve...

imagina que eu quero selecionar um filho como faço??? faço 2 selects um para o pai e outro para o filho, nop!! tenho que fazer um join ou algo assim, ajudem-me sff.

nunu eu sei o que é uma relação de n para n!

Edited by Daniivo
Link to comment
Share on other sites

Estás com problemas porque o esquema da base de dados está mal.

Se o número da família corresponde a facturação ... está tudo dito. Não está ali a fazer nada. Qualquer Pai (respectivo ID único) serve como identificador. Não precisas também da tabela Filhos, não faz sentido a partir do momento em que podes ter Avós.

Este esquema deve resolver o teu problema.

Pessoa

Id (Está subentendido que Id corresponde à tabela, se as vires numa perspectiva orientada a objectos)

nome

Facturacao_Pessoa (Tabela pivot entre Pessoa e Facturacao. Se usares o engine InnoDB, não precisas de mexer nesta tabela directamente)

id_pai ( = id em Pessoa)

id_facturacao ( = id em Facturacao)

Facturacao

id

---------

Experimenta e diz algo.

Link to comment
Share on other sites

Estás com problemas porque o esquema da base de dados está mal.

Se o número da família corresponde a facturação ... está tudo dito. Não está ali a fazer nada. Qualquer Pai (respectivo ID único) serve como identificador. Não precisas também da tabela Filhos, não faz sentido a partir do momento em que podes ter Avós.

Este esquema deve resolver o teu problema.

Pessoa

Id (Está subentendido que Id corresponde à tabela, se as vires numa perspectiva orientada a objectos)

nome

Facturacao_Pessoa (Tabela pivot entre Pessoa e Facturacao. Se usares o engine InnoDB, não precisas de mexer nesta tabela directamente)

id_pai ( = id em Pessoa)

id_facturacao ( = id em Facturacao)

Facturacao

id

---------

Experimenta e diz algo.

yoda, nao te esqueças que o numero de familia nao è dispensável è algo que tem que existir nao apenas para identificar mas também para na fatura aparecer, Titular "x", correspondente do numero_de_familia "y", depois os filhos vao ficar relacionados com eles numero por sua vez com o titular/pai.

BEM eu vou explicar todo o problema e assim vc ja sabem o que objectivo. a ideia è:

Titular de um seguro (quem paga o seguro) tem um numero de seguro,em espanhol chama-se "Numero de Poliza".

Asegurados (pessoas que estao asseguradas, ou seja pode ser um titular apenas ou o titular mais y pessoas, ou pode ser apenas x pessoas sem o titular do seguro, ou seja dando exemplo:

exemplo 1: uma pessoa segurada titular do seguro;

exemplo 2: 2 ou mais pessoas, titular do seguro e os filhos + esposa;

exemplo 3: 1 ou mais pessoas, filhos;

Tabela de Asseguradoras

Tabelas de Seguros

yoda ajuda-me sff

Edited by Daniivo
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.