Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    ordinare risultato query tra due tabelle

    ciao a tutti, devo fare una cosa piuttosto uregente e mi sono bloccato, praticamente ho un database dove ho due tabelle, una "regioni" e una "provincie", dove la tabella provincia ha come chiave l'id "regione_id" della tabella regioni. Devo fare una query che mi recuperi tutti i valori e me li metta in fila, ad esempio cosi:

    Umbria:
    - Perugia
    - Terni

    Toscana:
    - Arezzo
    - Firenze
    - Siena

    e cosi via...in pratica recuperare gli elementi dalla tabella province mettendoli sotto alla regione corrispondente...mi date un consiglio su come fare questa query?

    AGGIORNAMENTO: ci sono appena riuscito facendo questo:

    SELECT reg.id AS regid, dis.id AS disid, dis.name AS disname, reg.name AS resname FROM regions AS reg, districts AS dis WHERE reg.id = dis.region_id ORDER BY reg.name, dis.name

    solo che quando vado a fare il fetch array in php non mi mostra le cose come voglio io...e cioè. io faccio cosi:

    Codice PHP:
                while($array pg_fetch_array($result)){                       echo '                  <div style="width:100px; height:20px;">                  '$array["regname"] .'                 </div>                  ';                                              echo '<div style="display:block; background-color: #EEE; margin-left:10%; width:90%; height:auto; clear:both;" id="district' $array['disid'] . '">';                 
    echo  
    $array['disname'];                 
    echo 
    '</div>';                                     } 
    ma mi mostra solo i nomi delle province in fila, senza calcolare la regione...ma perchè?

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Non hai letto il regolamento,...... Devi dirci il DB che usi
    ______________________________________________
    Poi anche
    il nome delle tabelle
    il nome dei campi
    il tipo di dati x ogni campo

    ______________________________________________

    Ti va bene che Abruzzo sia la prima regione
    e Veneto sia l'ultima ???

    Se Si tutto Ok
    Se No devi pensare a un campo specifico x l'oerinamento


    Saluti

  3. #3
    uso postgre scusa

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Non conosco assolutamente Postgre
    Ma nel linguaggio SQL ci sono poche differenze,

    Ti propongo una soluzione con Access poi la trasformi te in postgre
    __________________________________________________ ___________________

    Le tabelle sono queste:

    ___ Re
    ReId ____ Numerico ___ Key ___ Autoincrementale
    Regio ___ Testo
    ReOrd ___ Numerico

    ___ Pr
    PrId ____ Numerico ___ Key ___ Autoincrementale
    Prov ____ Testo
    PrRe ____ Numerico
    PrOrd ___ Numerico

    __________________________________________________ _______________

    In particolare fra "ReId" e "PrRe" esiste una relazione
    uno a molti dove
    ReId è sul lato uno
    PrRe e sul lato molti ( KeyEsterna )

    ReOrd e il campo dove metti un numero di ordine
    arbitrario alla regione

    PrOrd e il campo dove metti un numero di ordine
    arbitrario alla Provincia ( ma resterà sempre sotto la sua regione )


    la query è questa:
    codice:
    SELECT 
    Q5.C1
    FROM 
    
    (
    SELECT 
    
    [Regio] & ":" AS C1, 
    Re.ReOrd AS C2, 
    "" AS C3 
    
    FROM Re
    
    UNION ALL 
    
    SELECT 
    
    "-   " & [Prov] AS C1, 
    Re.ReOrd AS C2, 
    Pr.PrOrd AS C3
    
    FROM Re 
    
    INNER JOIN Pr ON Re.ReId = Pr.PrRe
    ) AS Q5
    
    ORDER BY Q5.C2, Q5.C3
    
    ;
    Detta in italiano è uma query di unione fra
    le regioni e le province dove:

    __ Al 1° campo ( C1 ) c'è la regione e/o la provincia
    __ Al 2° campo ( C2 ) c'è il numero di oedine della regione
    ( la provincia eredita il numero della sua regione
    __ Al 3° campo ( C3 ) c'è il numero di ordine della provincia
    ( la regione resta con questo campo vuoto )

    Il tutto viene poi ordinato per il 2° e 3° campo


    Saluti

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.