Visualizzazione dei risultati da 1 a 7 su 7

Discussione: query per genealogia

  1. #1

    query per genealogia

    Ho questa tabella Mysql
    ID Nome PadreID MadreID

    e devo costruire il pedigree su 4 generaioni. Navigando ho trovato questo articolo sulle self joins. L'articolo http://allenbrowne.com/ser-06.html suggerisce di fare il join sulla tabella stessa per il numero di volte necessario, nel mio caso quattro.
    La query sarebbe del tipo:
    SELECT DISTINCTROW TblHorses.Name, Sire.Name, Dam.Name, SiresSire.Name, SiresDam.Name, DamsSire.Name, DamsDam.Name, SiresSiresSire.Name, SiresSiresDam.Name, SiresDamsSire.Name, SiresDamsDam.Name, DamsSiresSire.Name, DamsSiresDam.Name, DamsDamsSire.Name, DamsDamsDam.Name FROM (((((((((((((TblHorses LEFT JOIN TblHorses AS Sire ON TblHorses.SireID = Sire.ID) LEFT JOIN TblHorses AS Dam ON TblHorses.DamID = Dam.ID) LEFT JOIN TblHorses AS SiresSire ON Sire.SireID = SiresSire.ID) LEFT JOIN TblHorses AS SiresDam ON Sire.DamID = SiresDam.ID) LEFT JOIN TblHorses AS DamsSire ON Dam.SireID = DamsSire.ID) LEFT JOIN TblHorses AS DamsDam ON Dam.DamID = DamsDam.ID) LEFT JOIN TblHorses AS SiresSiresSire ON SiresSire.SireID = SiresSiresSire.ID) LEFT JOIN TblHorses AS SiresSiresDam ON SiresSire.DamID = SiresSiresDam.ID) LEFT JOIN TblHorses AS SiresDamsSire ON SiresDam.SireID = SiresDamsSire.ID) LEFT JOIN TblHorses AS SiresDamsDam ON SiresDam.DamID = SiresDamsDam.ID) LEFT JOIN TblHorses AS DamsSiresSire ON DamsSire.SireID = DamsSiresSire.ID) LEFT JOIN TblHorses AS DamsSiresDam ON DamsSire.DamID = DamsSiresDam.ID) LEFT JOIN TblHorses AS DamsDamsSire ON DamsDam.SireID = DamsDamsSire.ID) LEFT JOIN TblHorses AS DamsDamsDam ON DamsDam.DamID = DamsDamsDam.ID ORDER BY TblHorses.Name;

    Me la consigliate oppure meglio fare 4 query singole una per generaione come stavo pensando di fare prima di scoprire quest'articolo?
    www.staffords.it
    php work in progress database di staffordshire bull terrier(razza di cani)
    http://tonyz.altervista.org/

  2. #2
    che dite meglio un'unica query coi self joins oppure quattro query distinte? ...dai che sto aspettando il vostro via libera per procedere
    www.staffords.it
    php work in progress database di staffordshire bull terrier(razza di cani)
    http://tonyz.altervista.org/

  3. #3
    oggi sono sicuro che qualcuno mi sapete rispondere quindi uppo
    www.staffords.it
    php work in progress database di staffordshire bull terrier(razza di cani)
    http://tonyz.altervista.org/

  4. #4
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Provala, vedi se funziona e quanto tempo ci impiega.

  5. #5
    stai guardando un articolo per ACCESS (limitatissimo rispetto MySQL) ... in MySQL hai molta più sintassi da sfruttare e l 'outer join è supportato, non devi ricrearlo.

    Comunque fai un paio di benchmarks e ti risolvi il problema



    P.S. MS-Access Tips for Serious Users ... i Serious users credo che ACCESS nemmeno lo considerino
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    ho provato la query sopra con phpmyadmin e il tempo impiegato è di 0.0002 sec. Che ne pensi?
    www.staffords.it
    php work in progress database di staffordshire bull terrier(razza di cani)
    http://tonyz.altervista.org/

  7. #7
    Originariamente inviato da questin26
    ho provato la query sopra con phpmyadmin e il tempo impiegato è di 0.0002 sec. Che ne pensi?
    penso sia un ottimo tempo, se i dati in database sono migliaia, poco utile come test, se i dati in database sono 10 ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.